python rabbitmq json
时间: 2023-07-05 16:17:46 浏览: 144
在Python中使用RabbitMQ传递JSON消息,可以使用pika库来连接和操作RabbitMQ。同时,Python标准库中也提供了json模块来进行JSON编码和解码。
下面是一个简单的示例代码,演示如何使用pika库和json模块向RabbitMQ发送JSON消息和接收JSON消息:
```python
import pika
import json
# 创建RabbitMQ连接
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
# 声明队列
channel.queue_declare(queue='json_queue')
# 发送JSON消息
message = {'name': 'Alice', 'age': 25}
json_message = json.dumps(message)
channel.basic_publish(exchange='', routing_key='json_queue', body=json_message)
# 接收JSON消息
def callback(ch, method, properties, body):
json_message = json.loads(body)
print("Received JSON message:", json_message)
channel.basic_consume(queue='json_queue', on_message_callback=callback, auto_ack=True)
print('Waiting for JSON messages...')
channel.start_consuming()
# 关闭连接
connection.close()
```
在以上示例代码中,我们首先使用pika库创建了一个RabbitMQ连接,并声明了一个名为json_queue的队列。然后,我们使用json模块将一个Python字典对象转换为JSON字符串,并将其作为消息体发送到json_queue队列中。
接着,我们定义了一个回调函数callback,用于接收从json_queue队列中接收到的消息,并使用json模块将JSON字符串转换为Python字典对象,最后打印出接收到的消息。
最后,我们使用basic_consume方法来启动一个消费者,等待从json_queue队列中接收JSON消息。在接收到消息后,回调函数将被调用,将消息体传递给它进行处理。
需要注意的是,以上示例代码中使用了auto_ack参数来自动确认接收到的消息。这意味着一旦消息被接收,它就会被立即确认。如果你需要手动确认消息,则可以将auto_ack参数设置为False,并在处理完消息后调用basic_ack方法来手动确认消息。
阅读全文