У меня есть JSON, который я хочу зациклить (упрощенно):
{
"Meta Data": {
"1. Information": "Daily Prices (open, high, low, close) and Volumes",
"2. Symbol": "TGT",
"3. Last Refreshed": "2018-11-20 14:50:52",
"4. Output Size": "Compact",
"5. Time Zone": "US/Eastern"
},
"Time Series (Daily)": {
"2018-11-20": {
"1. open": "67.9900",
"2. high": "71.5000",
"3. low": "66.1500",
"4. close": "69.6800",
"5. volume": "15573611"
},
"2018-11-19": {
"1. open": "79.9300",
"2. high": "80.4000",
"3. low": "77.5607",
"4. close": "77.7900",
"5. volume": "9126929"
}
}
Даты - это значения, которые я не знаю заранее и которые меняются каждый день, поэтому я хочу зациклить их и вывести на печатьдата с открытым, высоким, низким и т. д. До сих пор все, что я мог сделать, это циклически проходить по датам и печатать их, но когда я попытался получить другие значения, будучи новичком в чтении JSON, я потерпел неудачу сследующий код:
import urllib.parse
import requests
code = 'TGT'
main_api = ('https://www.alphavantage.co/query? function=TIME_SERIES_DAILY&symbol=' +
code + '&apikey=RYFJGY3O92BUEVW4')
url = main_api + urllib.parse.urlencode({'NYSE': code})
json_data = requests.get(url).json()
#print(json_data)
for item in json_data['Time Series (Daily)']:
print(item)
for item in json_data[item]:
print(item)
Я также попытался сделать:
for v in json_data:
print(v['1. open'])
Вместо вложения, но, тем не менее, это не сработало.В обеих попытках я получаю одну и ту же ошибку:
Traceback (most recent call last):
File "jsonreader.py", line 26, in <module>
for item in item['Time Series (Daily)'][item]:
TypeError: string indices must be integers
Значит, кто-нибудь знает, как перебрать все даты и получить из них значения открытия, максимума, минимума и т. Д.?
полная версия JSON доступна здесь .