我有一个小的python应用程序,它将信息发送到我的天蓝色服务总线。我注意到每条消息都有" broker_properties"字典,有一个名为"标签"我可以稍后从服务总线访问。
我正在尝试发送填充该属性的消息:
properties = {"Label":label}
msg = Message(bytes(messagebody, "utf-8"), bus_service, broker_properties=properties)
bus_service.send_queue_message("queue", msg)
但这似乎不起作用。执行上面的命令后,我从Azure返回错误:
The value '{'Label': 'testtest'}' of the HTTP header 'BrokerProperties' is invalid.
这是Python Azure SDK中的错误还是我做错了什么?
答案 0 :(得分:1)
根据您的代码,问题是由使用Python dict对象作为broker_properties
的值引起的,但broker_properties
值应该是json字符串。请参阅GitHub上Azure SDK for Python中的测试code。
所以请修改您的代码如下。
properties = '{"Label": "%s"}' % label
或者
import json
properties = json.dumps({"Label":label})