向 API 发送文件时出现问题

kwn*_*kwn 1 python api http-post python-requests

我正在尝试将文件发送到 API,然后获取响应 - 一个 CSV 文件(我看过有关它的不同 帖子,但我无法使其工作)

文档中的示例使用 httpie

http --timeout 600 -f POST http://api-adresse.data.gouv.fr/search/csv/ data@path/to/file.csv
Run Code Online (Sandbox Code Playgroud)

但是当我使用请求时,我得到一个 400 Bad Request

path = '/myfile.csv'
url = 'http://api-adresse.data.gouv.fr/search/csv/'
files = {'file': open(path, 'rb')}
res = requests.post(url, data=files)
Run Code Online (Sandbox Code Playgroud)

fal*_*tru 5

您需要指定files关键字参数,而不是data发布 multipart/form-data 请求。

并且键应该匹配:file->data

path = 'path/to/file.csv'
url = 'http://api-adresse.data.gouv.fr/search/csv/'
files = {'data': open(path, 'rb')}
#        ^^^^^^
res = requests.post(url, files=files)
#                        ^^^^^
Run Code Online (Sandbox Code Playgroud)