结合使用Census Bulk Geocoder和python请求库

Jak*_*wen 4 python geocoding census python-requests

我正在尝试进行人口普查地理编码API 文档

以下curl命令有效:

curl --form addressFile=@Addresses.csv --form benchmark=9 http://geocoding.geo.census.gov/geocoder/locations/addressbatch --output geocoderesult.csv
Run Code Online (Sandbox Code Playgroud)

但是当我尝试将其移植到python请求时:

url = 'http://geocoding.geo.census.gov/geocoder/geographies/addressbatch'
payload = {'benchmark':9}
files = {'addressFile': ('Addresses.csv', open('Addresses.csv', 'rb'), 'text/csv')}
r = requests.post(url, files=files, data = payload)
print r.text
Run Code Online (Sandbox Code Playgroud)

我显然不是在发送格式正确的请求,而只是在响应中收到“存在内部错误”。知道我在提出此请求时做错了什么吗?

Jak*_*wen 5

得到它了!事实证明,地理位置请求类型需要一些位置类型不需要的参数。工作解决方案:

url = 'http://geocoding.geo.census.gov/geocoder/geographies/addressbatch'
payload = {'benchmark':'Public_AR_Current','vintage':'ACS2013_Current'}
files = {'addressFile': ('Addresses.csv', open('Addresses.csv', 'rb'), 'text/csv')}
r = requests.post(url, files=files, data = payload)
print r.text
Run Code Online (Sandbox Code Playgroud)