我在Rabbitmq消息队列中获取Devstack(KILO版本)中各种操作的响应。
现在我需要倾听特定的' event_type'来自回应。
有效载荷数据如下:
\"event_type\": \"compute.instance.update\"
我已经尝试过解析python代码,如下所示:
def _handle_message(self, body):
event_type = body['event_type']
现在的问题是,由于其中的斜杠,我收到错误如下:
2015-10-06 00:07:53,013 KeyError('event_type',)
我不想改变回复的发送方式。
我可以修改我尝试解析它的方式。
请有人帮助我。
注意:
我得到的代码在之前版本的devstack中工作正常。在那些响应数据中没有斜线。现在主要问题是斜杠。
可替换地, 简单来说,我现在需要的是匹配\" event_type \"完全使用python代码。
答案 0 :(得分:0)
如果你得到的是KeyError,那绝对应该是字典中没有密钥的情况。
在您的情况下,您正在检查正文中是否存在 event_type 。您甚至必须检查json正文以查看“event_type”键是否实际作为root节点。用于oslo消息传递的openstack事件通知json格式是不同的,因此,请尝试执行以下操作。
jsonbody = body['oslo.message']
event_type = jsonbody['event_type']
在大多数情况下,这应该是openstack事件通知解析的问题。