【问题标题】:400 status code when pulling US Census API拉取美国人口普查 API 时的 400 状态码
【发布时间】:2019-07-24 01:47:56
【问题描述】:

我想使用人口普查 API 来提取与 CB1100A11 表相同的就业数据(附有屏幕截图)。该表的每一行代表一个不同的 2 位数 NAICS 扇区。尽管构建此表完全是另一项任务,但当我包含其他变量时,我似乎无法获取 API 数据。

我在人口普查局提供的每个example urls 上都取得了成功,但我自己的没有任何成功。我在下面包含了一个代码 sn-p,减去我的密钥,以显示它的样子。我在 Jupyter Notebooks 和 BeautifulSoup 的 BS4 中使用 Python 3。

我已经咨询了API users documentationvariable list 没有成功。

example_vars = 'NAICS2007_TTL,GEO_TTL,EMP,LFO_TTL,ESTAB,PAYANN'
my_vars = 'NAICS2007,NAICS2007_TTL,GEO_TTL,EMP,LFO_TTL,ESTAB,PAYANN'

county_fips = '027'
state_fips = '42'
key ='str'

url= 'https://api.census.gov/data/2011/cbp?get='+my_vars+'&for=county:'+county_fips+'&in=state:'+state_fips+'&key='+key

res = requests.get(url)
res.status_code

当我添加像 NAICS2007 这样的其他变量时,我收到状态代码 400,但是当我使用示例变量时,我得到一个 200。共同点似乎是我的代码。有人可以帮忙吗?

image of the CB1100A11 table

【问题讨论】:

  • 有点难以回答这个问题,因为这似乎是 API 本身的问题。我在想你应该删除my_vars 中的NAICS2007_TTL

标签: python pandas api beautifulsoup census


【解决方案1】:

这应该转移到 cmets(我无法评论代表的 bc),但作为与美国人口普查 API 密切合作的人,我强烈建议使用人口普查库:

https://github.com/datamade/census

我的一个查询如下所示(其中 acs1dp 是我正在查询的数据库):

    from census import Census 

    conn = Census("MY API KEY")

    name = 'NAME'
    agriculture = 'DP03_0033PE'
    laborForce = 'DP03_0003PE'
    travelTime = 'DP03_0025E'
    highSchool = 'DP02_0066PE' 
    unemployed = 'DP03_0009PE'
    poverty = 'DP03_0128PE'

    payload = conn.acs1dp.get((name, travelTime, agriculture, poverty, 
    unemployed, laborForce, highSchool), {'for': 'state:*'})

它返回所有状态的每个列值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-24
    • 2018-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多