解析来自rabbitmq队列的响应有效负载

时间:2015-10-06 07:20:22

标签: python json rabbitmq devstack

我在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代码。

1 个答案:

答案 0 :(得分:0)

如果你得到的是KeyError,那绝对应该是字典中没有密钥的情况。

在您的情况下,您正在检查正文中是否存在 event_type 。您甚至必须检查json正文以查看“event_type”键是否实际作为root节点。用于oslo消息传递的openstack事件通知json格式是不同的,因此,请尝试执行以下操作。

jsonbody = body['oslo.message']
event_type = jsonbody['event_type']

在大多数情况下,这应该是openstack事件通知解析的问题。