【发布时间】:2020-10-04 05:01:14
【问题描述】:
我有一个curl POST 请求,它按预期在终端中返回一个 CSV。 RJMetrcis documentation 中提供了以下格式(请参阅“导出图形数据”)。这是 bash 中的 curl 请求:
curl --data-raw "format=csv&includeColumnHeaders=1" -H "X-RJM-API-Key: myapikey" https://api.rjmetrics.com/0.1/figure/12345/export
或者,使用-d 代替--data-raw 也可以
但是,当在 Python 中使用 requests 借助之前的 post 进行复制时,会返回错误:
url = "https://api.rjmetrics.com/0.1/figure/12345/export"
payload = "'{\"format\":\"csv&includeColumnHeaders=1\"}'"
headers = {
'X-RJM-API-Key': 'myapikey'
}
response = requests.request("POST", url, headers=headers, params=payload)
response.text
'{"Error":"Invalid Argument: CSV is currently the only supported format for SQL Reports"}'
这是 API 返回的特定错误,指示未请求 CSV 格式(当 bash 命令中省略 -d 时,会引发相同的错误)。但是,这两个请求在语法上是相同的。这里的 Python 问题可能是什么?有没有首选的参数传递方法?
【问题讨论】:
标签: python curl post python-requests