Nir*_*yan 4 python json azure azureservicebus
我第一次使用 azure 服务总线在 C# 源和 python 客户端之间传输消息。
我正在创建 ServiceBusService 对象并使用它从函数receive_subscription_message 中获取消息。
我得到的有效载荷不符合预期。
我的代码如下所示。
bus_service = ServiceBusService(service_namespace="service_namespace", shared_access_key_name="All", shared_access_key_value="password")
msg = bus_service.receive_subscription_message('test', 'test', peek_lock=True)
print(msg.body)
msg.delete()
Run Code Online (Sandbox Code Playgroud)
msg.body 给出一个字节字符串,如下所示:
b'@\x06string\x083http://schemas.microsoft.com/2003/10/Serialization/\x9ae\x0c{"PUID":"3NFLzV3cjCp8f5JLh3KSnkXDgSw1FWgM","HardDelete":null}\x01'
本来是把json推进去的。有没有办法避免额外的参数并只获取原始json?
该问题是由不同端使用的不同协议引起的:C# 中的发送者使用 AMQP 或默认的 .NET 序列化行为和 Python 中的接收者使用 REST API 通过 HTTP。你可以参考Azure Python Service Bus SDK的文档Using Service Bus from .NET with AMQP 1.0和源代码就知道了,我在另一个SO线程互操作性Azure服务总线消息队列消息中解释了类似的问题。
为了避免额外的参数并只获取原始json,您可以尝试两种方法,如下所示。
python-qpid-protonPython 中的包通过 AMQP 接收消息以反序列化并获取原始 json。希望能帮助到你。
| 归档时间: |
|
| 查看次数: |
717 次 |
| 最近记录: |