Как проанализировать SQS JSON-сообщение с помощью Python - PullRequest
0 голосов
/ 01 октября 2019

Я пытался обернуть голову вокруг этого, но я не могу заставить ее работать. Я могу углубиться в «Сообщения», указав его в опросе sqs, но не могу углубиться в:

Я получаю сообщение AWS SQS:

import boto3

sqs = boto3.client('sqs',
                   aws_access_key_id='<aws-id>',
                   aws_secret_access_key='<aws-key>',
                   region_name='<aws-region>'
                   )

queue_url = '<aws-queue-url'
# Long poll for message on provided SQS queue
response = sqs.receive_message(
    QueueUrl=queue_url,
    MaxNumberOfMessages=1,
    MessageAttributeNames=[
        'Messages'
    ],
    WaitTimeSeconds=20
)

, которое возвращаетОтвет JSON:

{
  'Messages': [
    {
      'MessageId': '37b13967-a92e-4b8b-8aef-32341a8e1e32',
      'ReceiptHandle': 'xyz',
      'MD5OfBody': '081f4bdad6fd3d53c88f165a884a39da',
      'Body': '{"inputIDList":["1234","5678"],"eventID":"9337","scheduleEvent":false,"addToList":true,"listID":"7654","clientID":"123-ABC-456"}'
    }
  ],
  'ResponseMetadata': {
    'RequestId': '79dafe96-04d9-5122-8b2a-a89b79a76a46',
    'HTTPStatusCode': 200,
    'HTTPHeaders': {
      'x-amzn-requestid': '79dafe96-04d9-5122-8b2a-a89b79a76a46',
      'date': 'Tue, 01 Oct 2019 16:13:50 GMT',
      'content-type': 'text/xml',
      'content-length': '4792'
    },
    'RetryAttempts': 0
  }
}

Все, что мне нужно сделать здесь, - это извлечь значение для «Тела», но я не могу достаточно углубиться в детали без ошибок.

Что бы я хотелкак возвращение, по сути, это просто JSON или строка:

'{"inputIDList":["1234","5678"],"eventID":"9337","scheduleEvent":false,"addToList":true,"listID":"7654","clientID":"123-ABC-456"}'

Я чрезвычайно новичок в этом. Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 01 октября 2019

Вы можете получить требуемый результат, используя

print (response['Messages'][0]['Body'])
...