使用Python封装器格式化美国人口普查API查询

2 投票
1 回答
1446 浏览
提问于 2025-04-18 17:02

我正在使用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' 替换成 '*',这样就能获取加利福尼亚州所有邮政编码的数据。

撰写回答