Python 解析来自rabbitmq队列的响应负载
我在Rabbitmq消息队列中得到了Devstack(KILO版本)中各种操作的响应 现在我需要从响应中听到特定的“事件类型” 有效载荷数据如下:Python 解析来自rabbitmq队列的响应负载,python,json,rabbitmq,devstack,Python,Json,Rabbitmq,Devstack,我在Rabbitmq消息队列中得到了Devstack(KILO版本)中各种操作的响应 现在我需要从响应中听到特定的“事件类型” 有效载荷数据如下: \"event_type\": \"compute.instance.update\" def _handle_message(self, body): event_type = body['event_type'] 2015-10-06 00:07:53,013 KeyError('event_type',) 我尝试了python代码
\"event_type\": \"compute.instance.update\"
def _handle_message(self, body):
event_type = body['event_type']
2015-10-06 00:07:53,013 KeyError('event_type',)
我尝试了python代码来解析相同的代码,如下所示:
\"event_type\": \"compute.instance.update\"
def _handle_message(self, body):
event_type = body['event_type']
2015-10-06 00:07:53,013 KeyError('event_type',)
现在的问题是,由于其中的斜杠,我得到的错误如下:
\"event_type\": \"compute.instance.update\"
def _handle_message(self, body):
event_type = body['event_type']
2015-10-06 00:07:53,013 KeyError('event_type',)
我不想改变发送回复的方式
我可以修改我试图解析它的方式
请有人帮我解决这个问题
注意:
我得到的代码在以前版本的devstack中运行良好。在那些响应数据中没有这些斜杠。现在主要的问题是斜杠
或者,
简单地说,我现在需要的是使用python代码精确地匹配“event\u type”。如果您得到KeyError,那么肯定是字典中没有该键 在您的例子中,您正在检查主体中是否存在事件类型。您甚至必须检查json主体,以查看“事件类型”键是否作为根节点的子节点实际存在。oslo消息的openstack事件通知json格式不同,因此,请尝试执行以下操作
jsonbody = body['oslo.message']
event_type = jsonbody['event_type']
在大多数情况下,这应该是openstack事件通知解析的问题。您是否真的在任何地方解析JSON?例如,使用
json.load
。实际生成的响应仅为json格式。但在我的代码中,我需要做的是检查body中的事件类型。这就是这样的反应\“事件类型\”:“计算实例更新\”