邮递员生成的Python脚本不工作

2024-04-24 00:28:43 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码基本上是由邮递员生成的。我已经从标题中删除了“内容类型”,因为我知道这是不需要的。我还概括了URL路径等。但我收到一条错误消息: b'{“消息”:“发生错误。详细信息:将MIME多部分正文部分写入输出流时出错。”}'

但是,当我从Postman运行请求时,它确实起作用。我做错了什么

import requests

url = "https://website.com/api/inputs/file/upload/Test/12/"

payload = {}
files = [
  ('', open('C:/Users/jmas/Documents/Demo/test.csv','rb'))
]
headers = {
  'Authorization': 'Bearer 0eE6r7DWAIriN6gBR1-5WJI- 
9ZsfgE13JEthzuSXKQ9A05sbt5xdn8cAcV3Sz16D4thYNBcr6dQGdIcivSOpo- 
0dz7tAVP19trL2bwQtQez6FyzZqJFqPQrHm7fLee9eEr5GSpth0JfeqV5Gt7z_juqB3dHDBINu1oxh9G- 
pF8VuSRpUkAOujSMS0RysE1aptVqU1wAXLTXnKxUlDJLpTuQMCQGnFwqNvUWx3mDQ9xh4pw-ZaKw8TMvWaYgtmd1Z- 
oAp2IgvP9bwV5pv5izyuUWIfaZyP0mqYlZu2'
}

response = requests.request("POST", url, headers=headers, data = payload, files = files)

print(response.text.encode('utf8'))
print(response.status_code)

Tags: 代码消息url标题类型内容邮递员response
3条回答

您正在通过请求传递有效负载,但此字典为空

我想你需要这样的东西:

url = 'https://website.com/api/inputs/file/upload/Test/12/'

files = {'': open('C:/Users/jmas/Documents/Demo/test.csv', 'rb')}

headers = {
    'Authorization': 'Bearer 0eE6r7DWAIriN6gBR1-5WJI-9ZsfgE13JEthzuSXKQ9A05sbt5xdn8cAcV3Sz16D4thYNBcr6dQGdIcivSOpo -0dz7tAVP19trL2bwQtQez6FyzZqJFqPQrHm7fLee9eEr5GSpth0JfeqV5Gt7z_juqB3dHDBINu1oxh9G -pF8VuSRpUkAOujSMS0RysE1aptVqU1wAXLTXnKxUlDJLpTuQMCQGnFwqNvUWx3mDQ9xh4pw - ZaKw8TMvWaYgtmd1Z - oAp2IgvP9bwV5pv5izyuUWIfaZyP0mqYlZu2'
}

response = requests.post(url, headers=headers, files=files)
print(response)

您的标题格式似乎不符合pep8规则,请尝试将其更改为格式良好

您的负载只是一个空字典。删除data = payload

成功!我在文件参数(字典)中添加了“text/csv”,文件成功上传

files = {"file": ("PremSet_2UB_0LB_NoRenewalInfo", 
open('C:/Users/jmas/Documents/Demo/test.csv', 'rb'), 'text/csv')}

相关问题 更多 >