我有一个安装了网络管理插件的RabbitMQ 3.4.2 instance。
当我使用Python的kombu队列包将消息{'operationId': 194}
推送到队列时,消息将在另一端作为字典读取。
但是,当我使用Web控制台发送消息时:
我在接收端收到以下错误:
operation_id = payload['operationId']
TypeError: string indices must be integers
我尝试添加content-type
标题和属性,但没有成功。
由于阅读器代码相同,这意味着Web发件人不会将已发送的邮件标记为JSON /字典有效内容,因此在另一端将其作为字符串读取。
知道如何使用RabbitMQ Web控制台将消息标记为JSON消息吗?
答案 0 :(得分:19)
答案 1 :(得分:1)
您需要反序列化输出。
import json
payload = json.loads(payload)
operation_id = payload['operationId']
此外,{'operationId': 194}
无效JSON。虽然看起来您在屏幕截图中使用双引号,但请确保使用双引号替换单引号。
修改强>
所以你是对的,kombu应该处理这个问题。查看代码时,标头可能区分大小写。将属性标题从Content-Type
更改为content-type
。