Как обрабатывать сообщения Json из EventHub с помощью Python SDK?

Я следую этому примеру для обработки сообщений, полученных от концентратора событий:

https://github.com/Azure/azure-event-hubs-python/blob/master/examples/eph.py

Но код показывает какой-либо код о том, как получить каждое сообщение и перейти к полезной нагрузке Json?

Я пробовал следующий код (используя Python SDK для Event Hub):

async def process_events_async(self, context, messages):
"""
Called by the processor host when a batch of events has arrived.
This is where the real work of the event processor is done.
:param context: Information about the partition
:type context: ~azure.eventprocessorhost.PartitionContext
:param messages: The events to be processed.
:type messages: list[~azure.eventhub.common.EventData]
"""
    for message in messages:
        message_content = json.loads(message.body)

    logger.info("Events processed {}".format(context.sequence_number))
    await context.checkpoint_async()

Но я получаю следующее сообщение об ошибке в инструкции, содержащей json.loads:

«2018-09-20 23: 13: 12,484 azure ERROR Event Processor Error TypeError (« объект JSON должен быть str, bytes или bytearray, а не 'generator' »,)»

Можете ли вы помочь мне с кодом добраться до полезной нагрузки Json сообщения?


person OlavT    schedule 21.09.2018    source источник


Ответы (1)


Это рабочий код для доступа к полезной нагрузке JSON сообщений концентратора событий:

for message in messages:
    message_body = list(message.body)
    message_content = json.loads(message_body[0])
person OlavT    schedule 23.09.2018