我正在尝试从s3存储桶中的json文件中提取一些数据,但是出现此错误:列表索引必须是整数或切片,而不是str。
这是代码:
content_object = s3.get_object(Bucket=source_bucket, Key=key)['Body']
json_content = json.load(content_object)
for i in json_content:
ID = json_content[i]['ID']
DateTime = json_content[i]['DateTime']
SourceDevice = json_content[i]['SourceDevice']
DestinationDevice = json_content[i]['DestinationDevice']
DataType= json_content[i]['DataType']
Activity = json_content[i]['Activity']
和json文件:
[
{
"ID": "No.",
"DateTime": "Time",
"SourceDevice": "Source",
"DestinationDevice": "Destination",
"DataType": "Protocol",
"Activity": "label"
},
{
"ID": "1",
"DateTime": "SomeTime",
"SourceDevice": "SomeSource",
"DestinationDevice": "SomeDestination",
"DataType": "ARP",
"Activity": "normal"
},
我已经经历了很多有关相同问题的话题,但找不到与我的代码相关的答案。谢谢您的帮助!
for x in some_list
在Python中使用时,您会x
自动获得列表中的值,而不是列表中的索引。因此,您想这样做:
for item in json_content:
ID = item['ID']
...
如果您还需要循环中的列表索引,请使用enumerate
:
for index, value in enumerate(json_content):
print(index, value['SourceDevice']) # prints "0 Source" and "1 SomeSource"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句