从boto3解析JSON python时的KeyError

时间:2017-06-23 18:40:18

标签: python json amazon-s3 boto3

我正在尝试从S3存储桶中读取 json 文件。

def getJSONObject(object):
    content = object.get()['Body'].read()[1:-1]
    content = '{' + content + '}'
    data = json.loads(content)
    return data

这会将我的Streaming Body转换为json内容,使用非常hacky的方式。我的输出格式如下。输出

print(data)

{u'DATE_TIME': u'2017/06/19 16:24:41', 
 u'S3_PATH': u'S3://hw-app-a5e2ccf910/DocumentProcessingVA/WPI1/WPE2043/EntityTaggingFinalOutput/c209201-1c04-49c3-ab4d-a7cc79d7f18d.json'}

但是当我尝试打印传递密钥的值时,我收到一个密钥错误

print(data["DATE_TIME"])

如果我通过遍历键然后打印在for循环中执行此操作,则打印值正常。即这样做

for info in data:
    print(data[info])

有没有更好的方法来做到这一点,因为我有更大的JSON文件,并且当我应该能够使用密钥时,我希望每次都不执行for循环以获取数据的位。我不确定这是编码错误还是我定义函数来获取JSON数据的方式。

P.S尝试从Streaming Body输出加载为字符串无效

0 个答案:

没有答案