json - 如何使用 Python 解析 SQS JSON 消息

标签 json python-3.x amazon-sqs

我一直在试图解决这个问题,但我似乎无法让它发挥作用。我可以通过在 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
  }
}

我在这里需要做的就是提取 'Body' 的值,但我无法深入钻取而不会出错。

我想返回的本质上就是这样的 JSON 或字符串:
'{"inputIDList":["1234","5678"],"eventID":"9337","scheduleEvent":false,"addToList":true,"listID":"7654","clientID":"123-ABC-456"}'

我对此非常陌生。任何帮助将不胜感激!

最佳答案

您可以使用获得所需的输出

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

关于json - 如何使用 Python 解析 SQS JSON 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58191688/

相关文章:

json - Aeson:解析枚举数据类型

javascript - 将多维对象数组转换为 JSON

javascript - 类型错误 : Cannot read property 'TigerNo' of undefined tempObj ['TigerNo' ] = this. getDefault(sportsRecord).TigerNo

java - Amazon SQS setRegion 方法

Java/Android - 根据字符串模式验证字符串 JSON

python - 从 Python 发送电子邮件

python - 用逗号分隔值

python - 两个条件变量附加到同一个锁,python2 和 python3 中的不同行为

python - Celery 消费者未从 LocalStack 上的 SQS 队列接收消息

amazon-web-services - RabbitMQ可见性超时