json 在Python中使用多个键从字典中获取特定值

pn9klfpd  于 2022-12-05  发布在  Python
关注(0)|答案(1)|浏览(178)

我想在python中从output.json文件中提取多个ISIN。
output.json文件如下所示:
{'A1 J780':{'之三':“0.20%”,“周”:'A1 J780','是':“IE00B88DZ566”}、“A1J7W9”:{'三':'0.20%','正':“IE00B8KMSQ34”},“LYX0VQ”:“A2AMYP”:{'之三':'0.22%','储蓄计划':无,“接收日期”:'02.11.16','基金规模':“48”、“正处”:“IE 00 BD 34 DB 16”}}(已删除)...
我目前的方法如下:

with open('output.json') as f:
        data = json.load(f)

    value_list = list()
    for i in data:
         value_list.append(i['isin'])
    print(value_list)

但是,我收到错误消息:

Traceback (most recent call last):
  File "/Users/placeholder.py", line 73, in <module>
    value_list.append(i['isin'])
                      ~^^^^^^^^
TypeError: string indices must be integers, not 'str'

我将非常感谢您的意见!
提前感谢您!

gpnt7bae

gpnt7bae1#

在for循环中使用data.values()作为目标,以迭代JSON对象。在data上执行循环将迭代字符串值的键(例如“A1J780”)。

data = {
    'A1J780': {'ter': '0.20%', 'wkn': 'A1J780', 'isin': 'IE00B88DZ566'},
    'A1J7W9': {'ter': '0.20%', 'isin': 'IE00B8KMSQ34'}
}
value_list = []
for i in data.values():
    value_list.append(i['isin'])
print(value_list)

输出:

['IE00B88DZ566', 'IE00B8KMSQ34']

如果isin键不在任何字典对象中,则需要使用i.get('isin')并检查该值是否为None,否则i['isin']将引发异常。

相关问题