我尝试通过API导入JSON数据,并使用导入的数据构建DataFrame。
{
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
}
import json
import pandas as pd
import numpy as np
import requests
api_username = 'acb'
api_password = 'efg'
germany_name = 'Germany'
germany_api_url = "https://api.country_data.com/stats/?country=" + germany_name + "&year=2014"
germany_api_resp = requests.get(germany_api_url,auth=(api_username,api_password))
germany_data_json = json.loads(germany_api_resp)
germany_frame = pd.DataFrame(germany_data_json['data']).set_index('tag')
向我展示了所需的DataFrame。
我想为许多国家重复这个过程,而不仅仅是print(germany_frame)
,所以我创建了一个这样的国家/地区对象:
'Germany'
当我创建我的第一个对象时,像这样:
class Country(object):
def __init__(self,name):
self.name = name
self.api_url = "https://api.country_data.com/stats/?country=" + name + "&year=2014"
self.api_resp = requests.get(self.api_url,auth=(api_username,api_password))
self.data_json = json.loads(self.api_resp)
self.frame = pd.DataFrame(self.data_json['data']).set_index('tag')
我收到错误消息:
Germany = Country('Germany')
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
我不知道您使用的是哪个版本的Python,以及requests
的哪个版本,但我建议您更新所有内容。这是我发现的错误:
self.data_json = json.loads(self.api_resp)
您尝试从请求加载json-way Response
,因此将其更改为:
self.data_json = self.api_resp.json()
我将你的api url替换为另一个,因为你的错误是对我有用的。
见啊!