Ведущий б в 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())