Python提取JSON文件中多个ISIN值时遇TypeError的解决求助
解决Python提取JSON中ISIN值的TypeError问题
错误原因
遍历字典data时,for i in data循环拿到的是字典的键(字符串类型),而非键对应的子字典,因此尝试用i['isin']会触发TypeError——字符串仅支持整数索引,不能用字符串索引。
修正方案
方案1:遍历字典的values()
直接遍历字典的所有值(即每个子字典):
import json with open('output.json') as f: data = json.load(f) value_list = [] for sub_dict in data.values(): value_list.append(sub_dict['isin']) print(value_list)
方案2:通过键获取对应值(需保留键信息时用)
如果后续需要用到外层字典的键,可以保留键的遍历逻辑,再通过键取出对应子字典:
import json with open('output.json') as f: data = json.load(f) value_list = [] for key in data: value_list.append(data[key]['isin']) print(value_list)
方案3:简洁的列表推导式
用列表推导式一行完成提取,代码更紧凑:
import json with open('output.json') as f: data = json.load(f) value_list = [sub_dict['isin'] for sub_dict in data.values()] print(value_list)
额外注意事项
若存在部分子字典没有isin字段的情况,建议添加判断避免KeyError:
value_list = [] for sub_dict in data.values(): if 'isin' in sub_dict: value_list.append(sub_dict['isin'])
内容的提问来源于stack exchange,提问作者user20682822
相关产品推荐
相关产品推荐

