python - requests.post 返回 {'code': 400, 'message': '必须在数据字段中提供 CSV 文件'}
问题描述
我拼命尝试将以下 CURL 转换为 python 代码:
curl -X POST -F data=@C:\search.csv -F columns=NO_VOIE -F columns=TYPE_DE_VOIE -F columns=VOIE -F columns=CODE_POSTAL -F columns=COMMUNE -F result_columns=latitude -F result_columns=longitude -F result_columns=score https://api-adresse.data.gouv.fr/search/csv/
不用说,这个 CURL 工作得很好,给出了一个地理编码地址列表,基于一个 CSV 文件,该文件C:\search.csv
存储了要使用 GPS 标签进行地理编码的地址。
search.csv =
INDEX,NO_VOIE,TYPE_DE_VOIE,VOIE,CODE_POSTAL,COMMUNE
201620160000000,77,RUE,TONY REVILLON,1750,SAINT-LAURENT-SUR-SAONE
201620160000001,,,LES BROTTEAUX,1160,VARAMBON
201620160000002,,,LES BROTTEAUX,1160,VARAMBON
201620160000003,,,LES BROTTEAUX,1160,VARAMBON
201620160000004,5246,,LES BROTTEAUX,1160,VARAMBON
我的 python 3.7 代码是:
import requests
url = 'https://api-adresse.data.gouv.fr/search/csv/'
params = {'data':'c:\search.csv',
'columns':'VOIE'}
output = requests.post (url,json=params).json()
print (output)
{'code': 400, 'message': 'A CSV file must be provided in data field'}
求救
API 文档在这里:https ://geo.api.gouv.fr/adresse
解决方案
推荐阅读
- mysql - MySQL 从 5.7 升级到 8.0 在 Failed at step EXEC spawning mysql-systemd-start 上失败
- .net - 在 rdlc 中并排显示比较数据
- spring-boot - 使用spring security自定义授权运行一段时间后用户名和密码为空
- docker - 不使用带有 php7.0-fpm 的 docker 容器连接主机的数据库
- regex - 用于匹配特定单词并忽略新行的正则表达式
- r - 以闪亮的方式绘制条形图
- android - 如何在 xamarin webview 中禁用屏幕缩放(不是捏合或双击缩放)
- c++ - 如何在c ++中修复“/usr/bin/ld:警告:liblber-2.4.so.2,//usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4需要,未找到”
- c#-3.0 - Contract.Requires() 和循环不变量的问题
- swift - 将物理实体分配给自定义精灵节点类中的多个对象