我试图在boto3验证器上验证来自AWS的JSONlint模块的json响应,并得到一个错误。
下面是我运行的代码:
import boto3
import json
ec2 = boto3.resource('ec2')
for status in ec2.meta.client.describe_instance_status()['InstanceStatuses']:
print(status)以下是答复:
{u'InstanceId': 'i-xxxxxxxx', u'InstanceState': {u'Code': 16, u'Name': 'running'}, u'AvailabilityZone': 'us-xxx-west-1b', u'SystemStatus': {u'Status': 'ok', u'Details': [{u'Status': 'passed', u'Name': 'reachability'}]}, u'InstanceStatus': {u'Status': 'ok', u'Details': [{u'Status': 'passed', u'Name': 'reachability'}]}}当我将响应粘贴到JSONLint上时,下面是响应:
Error: Parse error on line 1:
{ u 'InstanceId': 'i-0
----^
Expecting 'STRING', '}', got 'undefined'我假设AWS正在返回格式正确的JSON响应,还是不返回?
发布于 2018-05-20 19:04:03
数据已经被解析到Python字典中,这就是您所看到的。它看起来类似于JSON,但它不是。没有JSON可供您处理。
发布于 2018-05-20 19:08:03
正如Alex已经提到的,您正在打印一个Python字典,它与JSON稍有不同。例如,"u“前缀将以下字符串标记为unicode。
您不必担心得到无效的JSON响应,因为boto3通常会在AWS错误的情况下抛出异常。
https://stackoverflow.com/questions/50438099
复制相似问题