python - 异常类型错误:列表索引必须是整数或切片,而不是 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
解决方案
查看您发布的结构:data
是list,而不是dict:
[{'Id':
...
}]
列表不能由字符串索引。我希望你想要的是
data[0]['Id']
data
是一个列表;data[0]
是一个字典。
推荐阅读
- python - 无法在 django 中对用户进行身份验证
- c - fopen() 在哪里搜索要读取的文件?
- c# - 在 C# 中重复位的有效方法是什么?
- php - 用零替换 PHP 字符串中的重复值
- reactjs - 启用 onHide 功能时反应引导模式未打开
- regex - 在非数字之间查找句点或逗号
- discord.js - Bot 上线,但嵌入不会发布到 discord
- java - 每次滴答时将数据存储到 ArrayList
- javascript - Javascript - HTML 视频 readyState DOM 未定义
- python-3.x - 调用 NLTK 并在 databricks pyspark 上找不到“punkt”错误