无法将字典发送到 RabbitMQ(不可散列类型:'slice')

Unable to send a dictionary to RabbitMQ (unhashable type: 'slice')

我想以字典格式向 RabbitMQ 发送消息:

import pika

# ....
my_msg = {}
my_msg["a"] = 1
my_msg["a"]["b"] = 2
channel.basic_publish(exchange="", routing_key="some_key", body=my_msg)

我得到一个错误:

TypeError: unhashable type: 'slice'

请注意,我有很多 my_msg 并且每个都有一些键,所以我需要以某种方式能够将列表字典发送到 RabbitMQ。

我该怎么做?或者还有其他选择吗?

根据the documentationbody应该是一个字符串。

你可以试试body=json.dumps(my_msg)

您需要将字典序列化为字符串并通过 RabbitMQ 发送它们。

this question