[英]How to print JSON data in Python
我正在嘗試使用https://covid.ourworldindata.org/data/owid-covid-data.json打印每個國家/地區的 COVID 病例列表
這是我的代碼:
import json
f = open('covidData.json')
data = json.load(f)
new_string = json.dumps(data, indent =2)
for i in new_string['AFG']:
print(i)
f.close()
這僅顯示“AFG”中的數據,例如“大陸”、“位置”等。但我想知道如何打印“數據”->“new_cases”
我只是在學習 python,但是是否有類似於['AFG'.'data'.'new_cases']
語法可以用來打印案例?
將此擴展到整個 JSON 文件,我可以升級我的代碼,以便我不必指定每個國家/地區 ID,而是使用通用['country'.'data'.'new_cases']
格式來讀取數據?
如果有人有任何建議,請告訴我
這僅顯示“AFG”中的數據
如圖所示,您的代碼應返回錯誤。
new_string['AFG']
不起作用,因為您不能用另一個字符串索引一個字符串。 換句話說, json.dumps
是不需要的, data
是一個字典,你可以通過一個鍵索引,你必須一個接一個地迭代它們
例如
for country_code, info in data.items():
for country_info in info['data']:
print('{}\t{}\t{}'.format(country_info['date'], info['location'], country_info['new_cases']))
我可以使用類似於 ['AFG'.'data'.'new_cases'] 的語法嗎
似乎您想使用JSONPath ,但我認為上述解決方案足夠可讀
根據您的確切需求,在 pandas 中使用 CSV 數據集將更容易過濾和迭代
目前尚不清楚您想要做什么 - 數據跨越數天。
此代碼將向您顯示數據涵蓋的時間段內每個國家/地區的所有新病例數。
import json
with open('owid-covid-data.json') as data_file:
covid_data = json.load(data_file)
for country in covid_data.keys():
country_data = covid_data[country]
location = country_data['location']
cases_data = country_data['data']
total_new_cases = 0
for data in cases_data:
total_new_cases += data.get('new_cases',0)
print(f'{location} - {total_new_cases}')
這將按日期列出每個國家/地區的新病例。
import json
with open('owid-covid-data.json') as data_file:
covid_data = json.load(data_file)
for country in covid_data.keys():
country_data = covid_data[country]
location = country_data['location']
cases_data = country_data['data']
total_new_cases = 0
for data in cases_data:
new_cases = data.get('new_cases',0)
report_date = data['date']
print(f'{location} - {report_date} - {new_cases}')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.