I want to extract multiple ISINs out of a output.json file in python.
The output.json file looks like the following:
{‘A1J780’: {‘ter’: ‘0.20%’, ‘wkn’: ‘A1J780’, ‘isin’: ‘IE00B88DZ566’}, ‘A1J7W9’: {‘ ‘ter’: ‘0.20%’, ‘isin’: ‘IE00B8KMSQ34’}, ‘LYX0VQ’: {‘isin’: ‘LU1302703878’}, ‘A2AMYP’: {‘ter’: ‘0.22%’, ‘savingsPlan’: None, ‘inceptionDate’: ‘02.11.16’, ‘fundSize’: ’48’, ‘isin’: ‘IE00BD34DB16’}}
…
My current approach is the following:
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)
However, I receive the error message:
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'
I would highly appreciate your input!
Thank you in advance!
>Solution :
Use data.values() as target in for loop to iterate over the JSON objects.
data = {
'A1J780': {'ter': '0.20%', 'wkn': 'A1J780', 'isin': 'IE00B88DZ566'},
'A1J7W9': {'ter': '0.20%', 'isin': 'IE00B8KMSQ34'}
}
value_list = list()
for i in data.values():
value_list.append(i['isin'])
print(value_list)
Output:
['IE00B88DZ566', 'IE00B8KMSQ34']