如何从网络 api 访问类似 json 的对象列表?
How to access list of json-like objects from web api?
我现在正在做的一个副业项目是玩 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', 'CountryCode': '', 'Province': '', 'City': '', 'CityCode': '', 'Lat': '0', 'Lon': '0', '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'
你应该使用 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 字符串。
为什么不尝试将其转换为 pandas Dataframe。
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)
我现在正在做的一个副业项目是玩 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', 'CountryCode': '', 'Province': '', 'City': '', 'CityCode': '', 'Lat': '0', 'Lon': '0', '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'
你应该使用 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 字符串。
为什么不尝试将其转换为 pandas Dataframe。
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)