首页 > 解决方案 > 异常类型错误:列表索引必须是整数或切片,而不是 str

问题描述

是的,这可能之前已经被问过,但我无法找到我的问题,只有它的其他变体。

我正在发送获取请求以获取有关我的产品的保修详细信息,当我尝试解析 json 时,这就是我得到的。

TypeError: list indices must be integers or slices, not str

这是json条目 [{'Id': 'LAPTOPS-AND-NETBOOKS/THINKPAD-X-SERIES-LAPTOPS/THINKPAD-X1-CARBON-TYPE-20FB-20FC/20FB/20FBCTO1WW/my_serial', 'Guid': '', 'Brand': 'TPG', 'Name': 'X1 Carbon 4th Gen (Type 20FB, 20FC) Laptop (ThinkPad) - Type 20FB', 'Serial': '------', 'Type': 'Product.Serial', 'ParentID': ['9FD94C57-4A34-44BB-79C6-437A4468F0BC', 'A3D3B76A-9BDC-47FC-90C9-45266B9EFE49', '63986A45-3DF9-495B-83F5-C481E747FDBE', 'AC099204-FBB5-408D-83F1-B7A799CA7FDE', '4F17B2FC-75C9-454A-836E-BE95E4F89B1A'], 'Image': 'https://download.lenovo.com/images/ProdImageLaptops/x1carbon_g4.jpg', 'Popularity': '', 'IsSupported': True}]

我的代码:

r = requests.get(url + "my_products_serial_number")
data = r.json()
print(data['Id'])

预期输出:LAPTOPS-AND-NETBOOKS/THINKPAD-X-SERIES-LAPTOPS/THINKPAD-X1-CARBON-TYPE-20FB-20FC

标签: pythonjson

解决方案


查看您发布的结构:datalist,而不是dict

[{'Id':
    ...
 }]

列表不能由字符串索引。我希望你想要的是

data[0]['Id']

data是一个列表;data[0]是一个字典。


推荐阅读