2015-10-06 2 views
0

Я получаю ответ в очереди сообщений Rabbitmq для различных операций в Devstack (версия KILO).Анализ полезной нагрузки ответа из очереди rabbitmq

Теперь мне нужно прослушать конкретный «event_type» из ответа.

Payload данные выглядят следующим образом:

\"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',) 

Я не могу изменить способ ответа на вопросы b отправлено.

Я могу изменить способ, как я пытаюсь его разобрать.

Пожалуйста, помогите мне в этом отношении.

Примечание:

я получал код, который я сделал, работает нормально в предыдущих версиях devstack.In те данные réponse не thoses slashes.Now основной вопрос с косой черты.

В качестве альтернативы, Простыми словами, что мне нужно сейчас, соответствует «event_type \» с использованием кода python.

+0

Вы на самом деле разбираете JSON? Например. используя 'json.loads'. –

+0

На самом деле ответ, который генерируется, был только в формате Json. Но в моем коде Что мне нужно сделать, это проверить событие event_type в теле. Это от этого ответа. \ "event_type \": \ "compute.instance.update \" – Murali

ответ

0

Если вы получаете KeyError, это определенно должно быть так, что ключ отсутствует в словаре.

В вашем случае, вы проверяете, если event_type присутствует в body.You придется даже проверить JSon тело, чтобы увидеть, если ключ «event_type» на самом деле присутствует в детстве корня node.The Уведомление о событии openstack json для обмена сообщениями oslo отличается и, следовательно, попробуйте сделать следующее.

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

В большинстве случаев это должно быть проблемой для синтаксического анализа событий openstack.

Смежные вопросы