我一直在尝试理解这一点,但似乎无法让它工作。我可以通过在sqs轮询中指定"Messages"来深入查看它,但无法深入了解:
我正在检索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"}'
我在这方面是个新手。任何帮助都将不胜感激!
2条答案
按热度按时间axr492tv1#
除了@matesio answer,如果你想把消息的主体存储为python字典,只需要用json.loads Package 即可:
bnl4lu3b2#
您可以使用以下命令获得所需的输出