使用Python封装器格式化美国人口普查API查询
我正在使用Sunlight Lab的Python封装类来访问美国人口普查API。不过,我在格式化查询时遇到了一些困难,因为他们提供的示例不是特别详细。这个库的核心文件有点难以理解,所以我希望有人能帮我格式化一个查询。
我该如何格式化一个查询,以便使用这个封装类查找某个邮政编码的人口呢?
这是我目前的尝试:
from census import Census
from us import states
c = Census("66897530f6275c25f574d3d469c1f4c730b9174a")
print c.sf1.get(('NAME', 'P0080001'), {'for': 'zipcode:*'})
但这给我带来了一个错误。
P0080001是根据http://api.census.gov/data/2010/sf1/variables.html对应的总人口数据。
在封装代码中相关的代码:
https://github.com/sunlightlabs/census/blob/master/census/core.py
1 个回答
1
我通过调用 c.sf1.state_zipcode
让这个功能正常工作。这里的 sf1
包含了 state_zipcode
这个地理信息,所以你需要同时提供州和邮政编码才能得到结果。
用你的例子来说:
from census import Census
from us import states
c = Census("66897530f6275c25f574d3d469c1f4c730b9174a")
c.sf1.state_zipcode(('NAME', 'P0080001'),states.CA.fips,'94104')
这样会返回
[{'NAME': 'ZCTA5 94104',
'P0080001': '406',
'state': '06',
'zip code tabulation area': '94104'}]
你还可以把邮政编码 '94104' 替换成 '*',这样就能获取加利福尼亚州所有邮政编码的数据。