所以,这是我第一次使用 Census API(或任何 API),到目前为止我已经很幸运了。我没有使用 census 包或 cenpy,而是手动创建 URL,因为它并不难。
例如,以下成功让我了解了各州和国会选区使用不同语言的人数。
这有效:
import requests
import pandas as pd
r = requests.get('https://api.census.gov/data/2016/acs/acs1/subject?get=S1601_C01_002E,S1601_C01_004E,S1601_C01_008E,S1601_C01_012E&for=congressional%20district:*&in=state:*&key=<my key>')
r.status_code
data = r.json()
df = pd.DataFrame(data)
header = df.iloc[0]
df = df[1:]
df.columns = header
lang = df.rename(columns = {'congressional district': 'cd',
'S1601_C01_002E': 'English',
'S1601_C01_004E': 'Spanish',
'S1601_C01_008E': 'IndoEuropean',
'S1601_C01_012E': 'AsianPacific'})
但是,我现在有兴趣检索一个百分比变量。当我尝试拉它时,我得到 -888888888 字段中的所有值。我假设有一种简单的方法可以以我缺少的正确格式检索这些数据。有谁知道那是什么?
错误代码:
r = requests.get('https://api.census.gov/data/2016/acs/acs1/subject?get=S1501_C01_015E&for=congressional%20district:*&in=state:*&key=<my key>')
r.status_code
data = r.json()
结果:
[['S1501_C01_015E', 'state', 'congressional district'],
['-888888888', '01', '01'],
['-888888888', '01', '02'],
['-888888888', '01', '03'],
['-888888888', '01', '04'],
['-888888888', '01', '05'],...