我在python 3中使用requests.post方法上传CSV文件时出现问题。
from requests.auth import HTTPBasicAuth
import csv
import requests
user='myuser'
pw='mypass'
advertiserid='10550'
campaignid='12394'
url='http://example.example.com/api/edc/upload/'+advertiserid+'/'+campaignid+'/'+'?encoding=utf-8&fieldsep=%3B&decimalsep=.&date=DD%2FMM%2FYYYY&info=1&process=1'
csv="myfile.csv"
with open(csv, 'r') as f:
r = requests.post(url, files={csv: f})
print(r)
输出是“响应[502]'
知道可能出现什么问题?
非常感谢!
答案 0 :(得分:0)
您可以在此处参考Requests库的文档:post-a-multipart-encoded-file
将您的请求行更改为:
r = requests.post(url, files={'report.csv': f})
答案 1 :(得分:0)
csv="myfile.csv"
url='http://example.example.com/api/edc/upload/'+advertiserid+'/'+campaignid+'/'+'?encoding=utf-8&fieldsep=%3B&decimalsep=.&date=DD%2FMM%2FYYYY&info=1&process=1'
files = {' upload_file':open(csv,' rb')} r = requests.post(url,files = files)
答案 2 :(得分:0)
尝试以二进制模式打开它?并使用特定的&text; / csv'哑剧型?
with open(csv, 'rb') as f:
r = requests.post(url, files={'file': ('myfile.csv', f, 'text/csv', {'Expires': '0'})})
print(r.text)
如果它仍然不起作用,请尝试不使用二进制文件,但仍然使用其余文件。 如果它不起作用,请打印确切的错误消息。而502(糟糕的网关)可能只是意味着你没有针对正确的网址。 (你并没有针对example.com,对吗?