TypeError:List indices must be integers or slices , not str
文章目录
- 报错代码
- 报错翻译
- 报错原因
- 解决方法
报错代码
一个粉丝群里面的小伙伴,对复杂的字典取值时报错,他想实现打印
peach
:import json
python_str={
"season":
[
{"spring":[{"fruit":"pineapple"}]},
{"summer":[{"fruit":["watermelon","peach"]}]},
{"fall":[{"fruit": "apple"}]},
{"winter":[{"fruit": "orange"}]}
]
}
#定位数据节点
#打印字典所有key
print(python_str.keys())
#打印字典所有value
print(python_str.values())
print(python_str["season"]["spring"])
报错信息截图:
文章图片
报错翻译
报错信息翻译:
类型错误:列表索引必须是整数或片,而不是str
报错原因
观察代码代码可以发现红框那高亮说明取不到值
文章图片
报错原因:代码有错取不到值
解决方法
对于复杂的字典需要一层一层往下取,修改代码为:
import json
python_str={
"season":
[
{"spring":[{"fruit":"pineapple"}]},
{"summer":[{"fruit":["watermelon","peach"]}]},
{"fall":[{"fruit": "apple"}]},
{"winter":[{"fruit": "orange"}]}
]
}print(python_str["season"][1]['summer'][0]['fruit'][1])
推荐阅读
- java|几个前端浏览器调试小技巧
- javascript|JavaScript修炼之路-筑基篇(六)Web APIs、Dom及元素获取
- 单片机从入门到高级|51单片机——AD/DA转换
- 实现 classmethod装饰器
- 目标检测|【目标检测】yolo系列(从yolov1到yolov5之YOLOv5训练自己数据集(v6.0))
- Python|在Python中寻找数据异常值的三种方法
- Python|Python中四个不常见的小技巧
- #|pandas的简单使用(数据统计)
- Python|【Python】使用一行代码实现均值,中位数和众数