python - 使用 cURL 和请求库的 BLS API 数据?

标签 python python-requests

所有,我正在尝试实现一个curl 请求以从BLS 获取数据。按照他们的例子here (它们显示了curl请求),我的代码如下所示:

import requests
headers = {'Content-type': 'application/json'}
params = {"seriesid":["LEU0254555900", "APU0000701111"],"startyear":"2002", "endyear":"2012"}
p = requests.post('http://api.bls.gov/publicAPI/v1/timeseries/data/', params = params,headers = headers)
print p.url
print p.content

我收到以下(错误)输出:

http://api.bls.gov/publicAPI/v1/timeseries/data/?seriesid=LEU0254555900&seriesid=APU0000701111&endyear=2012&startyear=2002

{"status":"REQUEST_FAILED","responseTime":0,"message":["Sorry, an internal error occurred. Please check your input parameters and try your request again."],"Results":null}

有人需要处理 BLS api 和 python 吗? requests 库最适合这个吗?

最佳答案

您需要将数据作为 json 发送,而不是作为 params 字典传递。 params 设置url参数,这不是你想要的,你需要将其作为data传递。

这应该有效:

import requests
import json
headers = {'Content-type': 'application/json'}
data = json.dumps({"seriesid":["LEU0254555900", "APU0000701111"],"startyear":"2002", "endyear":"2012"})
p = requests.post('http://api.bls.gov/publicAPI/v1/timeseries/data/', data=data, headers=headers)
print p.url
print p.content

关于python - 使用 cURL 和请求库的 BLS API 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18365969/

相关文章:

python - 对某些列中的 pandas 数据帧进行平均

python - 在 Bokeh 中更新 ColorBar

python - 如何修复原子编辑器中的 `flake8 D100 — Missing docstring` 错误

python - HTTP header 被 `urllib3.exceptions.HeaderParsingError: [MissingHeaderBodySeparatorDefect()], unparsed data` 切成两半

javascript - Kraken API 中的 InvalidKey 使用 JS,而不是 Python

python - 试图找到类(class)内的号码

python - 使用 python 删除 .dat 文件中的行和列

python - 如何将字符串拆分为奇数序列?

python - 如何从多个网页中提取文本,其中某些页面在不同标签下有文本?

python 请求库不返回任何响应