Python 3.x 试图从json文件提取数据时,列表索引必须是整数或片,而不是str error
我试图从s3 bucket中的json文件中提取一些数据,但是我得到了这个错误:列表索引必须是整数或片,而不是str 代码如下:Python 3.x 试图从json文件提取数据时,列表索引必须是整数或片,而不是str error,python-3.x,Python 3.x,我试图从s3 bucket中的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
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 i in json_content
与
您正在尝试使用json_内容列表元素为列表编制索引。或者,你也可以这样做
ID = i['ID']
用于获取字典元素。您需要更改
for i in json_content
与
您正在尝试使用json_内容列表元素为列表编制索引。或者,你也可以这样做
ID = i['ID']
用于获取字典元素。在Python的某些列表中为x使用
时,会自动将列表中的值获取为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"
当您在Python中的某些列表中为x使用时,会自动将列表中的值设置为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"
第一件事:json_内容中的i的i
中的i
是什么,您确定以后可以用i
索引json_内容吗?在json_内容中的i:
=>键入(i)
=>口述。。。您的代码的其余部分没有太大意义……首先:json_内容中的i的i
中的i
是什么,您确定以后可以用i
索引json_内容吗?在json_内容中的i:
键入(i)
=>dict。。。您的代码的其余部分没有多大意义…它返回一个dict。非常感谢您的帮助,它与您的第一个答案配合得很好!它返回了一个dict。非常感谢您的帮助,它与您的第一个答案配合得很好!