我是Python的新手,并且几天来一直在寻找如何做到这一点,我仍然感到困惑。我以json格式从城市的网站上提取数据,它显示为一个词典列表,例如:
[{'abbr': '14ASSB01',
'id': '7',
'mdtlat': '423374191',
'mdtlong': '-830800061',
'name': '14TH & ASH',
'off': '0.4899',
'on': '1.74422',
'schedule': 'April 23, 2012 Schedule Data',
'service': 'Avg Weekday',
'stop_order': '0',
'stopactivi': '2.23413',
'the_geom': {'coordinates': [-83.08001, 42.33742], 'type': 'Point'},
'trips': '32',
'wgslat': '42.33742',
'wgslong': '-83.08001'},
{'abbr': '14BLSB01',
'id': '9',
'mdtlat': '423716251',
'mdtlong': '-831006789',
'name': '14TH & BLAINE',
'off': '14.45024',
'on': '21.12781',
'schedule': 'April 23, 2012 Schedule Data',
'service': 'Avg Weekday',
'stop_order': '0',
'stopactivi': '35.57805',
'the_geom': {'coordinates': [-83.10068, 42.37163], 'type': 'Point'},
'trips': '32',
'wgslat': '42.37163',
'wgslong': '-83.10068'},
我想使用FCC的lat / long到人口普查区块转换API,并为结果中的每个dict添加一个新的key:value对。
为了提取原始数据,我能够做到
endpoint = "url..."
response = requests.get(endpoint)
results - response.text
data = json.loads(results)
但我无法弄清楚如何做两件事:通过调用人口普查区块转换API迭代我的dicts列表,或者如何将结果(人口普查区块号码)添加为新密钥:value在每个字典中配对。
我在将数据移动到pandas数据帧后尝试这样做,但得到了“字符串索引必须是整数”错误(即使lat / long字段已转换为float:
endpoint = 'http://data.fcc.gov/api/block/find?format=json'
params = {'latitude' : [(num['wgslat']) for num in busso],
'longitude' : [(num['wgslong']) for num in busso]
}
url = requests.Request('GET', endpoint, params=params).prepare()
url
resp = requests.get(endpoint)
resul = response.text
如果有人在路线上有任何建议/提示,我可以通过FCC API运行我的所有纬度/长度并将新的人口普查区块信息作为新密钥返回:值对 - 或者作为数据框中的新专栏 - 我非常感激!