我试图通过API链接将世界银行的API转换为pandas DF格式:http://api.worldbank.org/countries/indicators/6.0.GDP_growth?per_page=100&date=2000:2015&format=json
页面响应如下:
[{"页面":1,"页面" 147" per_page":" 2""总& #34; 294},[{"指示器" {" ID":" 6.0.GDP_growth""值":&# 34; GDP 增长(年度%)"},"国家":{" id":" L5","价值":&# 34;斯 区域"}"值":空,"十进制":" 0""日期":" 2001&# 34;},{"指示器" {" ID":" 6.0.GDP_growth""值":" GDP 增长(年度%)"},"国家":{" id":" L5","价值":&# 34;斯 区域"}"值":空,"十进制":" 0""日期":" 2000&# 34;}]]
我试图获得类似于以下的数据框:
Out[253]:
Country Name GDP_growth
0 Afghanistan 14.43474129
1 Albania 1.623698601
2 Algeria 3.299991384
3 American Samoa ..
4 Andorra -1.760010328
以下是我迄今为止所要求的命令:
from urllib2 import Request, urlopen
In [2]:
import json
In [3]:
from pandas.io.json import json_normalize
In [4]:
request = Request('http://api.worldbank.org/countries/indicators/6.0.GDP_growth?per_page=100&date=2000:2015&format=json')
In [5]:
response = urlopen(request)
In [6]:
elevations = response.read()
data = json.loads(elevations)
json_normalize(data['indicator'])
----------------------------------------------- ---------------------------- TypeError Traceback(最近一次调用 最后)in() ----> 1 json_normalize(数据['指标'])
TypeError:list indices必须是整数,而不是str
希望在最后一行获得帮助。
谢谢!
答案 0 :(得分:0)
data
目前是一个列表。当你漂亮地打印它时,你会看到它好一点:
from pprint import pprint
pprint(data)
indicator
字段的第一项是data[1][0]
。