无法在Python中发布CSV文件

时间:2017-11-13 14:36:06

标签: python csv python-requests

我在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]'

知道可能出现什么问题?

非常感谢!

3 个答案:

答案 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,对吗?