Ведущий б в Python Пика ответ

Я пытаюсь сделать простой клиент AMQP, используя Python. Я скопировал код, который нашел на сайте RabbitMQ:

#!/usr/bin/env python
import pika

connection = pika.BlockingConnection(pika.ConnectionParameters(
    host='localhost'))
channel = connection.channel()

channel.queue_declare(queue='hello')

def callback(ch, method, properties, body):
    print(" [x] Received %r" % body)

channel.basic_consume(callback,
                  queue='hello',
                  no_ack=True)

print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()

Это работает, за исключением того, что всегда печатает что-то вроде [x] Received b'my message'. Из-за этого я не могу разобрать мои сообщения JSON. Как это исправить?

1 ответ

Решение

Вы можете использовать decode() для преобразования строки в utf-8, а затем распечатать ее, что-то вроде

str = 'your str'
print(str.decode())

Добавляя к правильному ответу yichucai, я обнаружил, что вы можете добавитьdecode()непосредственно в тело var внутри print. Вот так:

print(" [x] Received %r" % body.decode())
Другие вопросы по тегам