问题描述
我正在做的一个辅助项目现在正在使用covid19 api。而且我一直希望可以使用data2.countries
之类的东西来访问数据。
import requests as r
import urllib
import json
url = 'https://api.covid19api.com/total/dayone/country/south-africa'
foo = urllib.request.urlopen(url)
data = json.loads(foo.read().decode())
data2 = json.parse(data)
print(data2)
数据看起来像这样-全部集中在一个列表中:
[{'Country': 'South Africa','CountryCode': '','Province': '','City': '','CityCode': '','Lat': '0','Lon': '0','Confirmed': 607045,'Deaths': 12987,'Recovered': 504127,'Active': 89931,'Date': '2020-08-22T00:00:00Z'},{'Country': 'South Africa','Confirmed': 609773,'Deaths': 13059,'Recovered': 506470,'Active': 90244,'Date': '2020-08-23T00:00:00Z'}]
到目前为止,我得到了:
File "~/20200813file/main.py",line 19,in <module>
data2 = json.parse(data)
AttributeError: module 'json' has no attribute 'parse'
解决方法
为什么不尝试将其转换为熊猫数据框。
import urllib
import json
import pandas as pd
url = 'https://api.covid19api.com/total/dayone/country/south-africa'
foo = urllib.request.urlopen(url)
data = json.loads(foo.read().decode())
df = pd.DataFrame(data)
print(df.Country)
,
您应该使用json.dumps
:
import requests as r
import urllib
import json
url = 'https://api.covid19api.com/total/dayone/country/south-africa'
foo = urllib.request.urlopen(url)
data = json.loads(foo.read().decode())
data2 = json.dumps(data)
print(data2)
json.dumps()
函数将Python对象转换为json字符串。