如何从Web API访问类似json的对象的列表?

问题描述

我正在做的一个辅助项目现在正在使用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字符串。