猿问

cURL POST 请求不能像 python 请求一样工作

我有一个curlPOST 请求,它按预期在终端中返回 CSV。RJMetrcis文档中提供了以下格式(请参阅“导出图形数据”)。这是 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的帮助复制此内容时,会返回错误:

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 格式(当-dbash 命令中省略时,会引发相同的错误)。然而,这两个请求在语法上是相同的。这里的 Python 问题可能是什么?是否有首选的参数传递方法?


慕盖茨4494581
浏览 94回答 1
1回答

蛊毒传说

import requestsdata = {    'format': 'csv',    'includeColumnHeaders': 1}headers = {    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0',    'X-RJM-API-Key': 'yourapi'}def main(url):    r = requests.post(url, data=data, headers=headers)    print(r)main("https://api.rjmetrics.com/0.1/figure/12345/export")
随时随地看视频慕课网APP

相关分类

Python
我要回答