如何使用FCC的API在Python中查找人口普查区并迭代一系列的词组?

时间:2017-10-29 20:10:48

标签: python json dictionary

我是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运行我的所有纬度/长度并将新的人口普查区块信息作为新密钥返回:值对 - 或者作为数据框中的新专栏 - 我非常感激!

0 个答案:

没有答案