【问题标题】:Post CSV file contents as data in Python在 Python 中将 CSV 文件内容作为数据发布
【发布时间】:2016-08-23 14:40:09
【问题描述】:

再一次,对于 python 来说相对较新,所以这对某些人来说似乎是不费吹灰之力。我提前道歉。

我想知道如何打开 .csv 文件并在后期会话中将内容作为数据发送。

有点像这样:

userData = json.loads(loginResponse.text)
sessionToken = userData["sessionId"]
print ('Login successful! Attempting to upload file...')

# Now try to upload file
uploadURL = 'url'
headers = {
    'token': sessionToken
}


with open('data.csv', newline='') as csvFile: 
    csvReader = csv.reader(csvFile)

    uploadResponse = loginAS.post(uploadURL, headers=headers, data='CONTENTS OF CSV FILE')
    print (uploadResponse.status_code)
csvfile.close()

我尝试只打开 csv 文件,但没有成功。我试过了

data=list(csvReader)

但我收到“太多值无法解包”错误。那么,有什么想法吗?

我不确定这是否重要,但我使用的是 Python 3.4

【问题讨论】:

  • 如果您只想将文件内容作为一大块文本传递,请不要使用 csv 模块。只需使用普通文件read() 方法即可。
  • 只想发送原始数据?还是以特定格式?对于您的错误,请查看this
  • @JohnGordan,您能详细说明一下吗?如何使用 read() 方法?
  • uploadResponse = loginAS.post(..., data=csvFile.read())
  • @TryToSolveItSimple 老实说,我不知道我是否需要它作为特定格式。我正在尝试将文件上传到服务器,但是当我使用 files=files 选项时,我收到 500 错误。拦截 HTTP 调用,看起来它应该只是一大块文本......试图解决解包值(我已经阅读了你建议的帖子)似乎没有实际意义。所以我只是想尽我所能。我将从纯文本开始

标签: python python-3.x csv post


【解决方案1】:

如果您只想将文件内容作为一大块文本传递,请不要使用 csv 模块。只需使用普通的文件 read() 方法即可:

uploadResponse = loginAS.post(..., data=csvFile.read())

【讨论】:

  • 这正是我所需要的。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-31
  • 2017-11-11
  • 1970-01-01
  • 1970-01-01
  • 2021-08-10
  • 1970-01-01
  • 2014-06-03
相关资源
最近更新 更多