在 python 脚本中发送带有多个数据文件和字符串的 post 请求

Send post request with multiple data files and strings in python script

我正在尝试发送 post 请求,我需要上传 2 个文件和一些其他字符串和整数,从 python 脚本中执行此操作的最佳方法是什么?

我可以在 bash 终端中使用 curl,它可以工作,但不确定如何为 python 脚本格式化它?

脚本中已经定义了多个变量

os.system(r"curl -F ''file=@./'+  t + '.files/' + t + '.png'' -F ''info=@./' +  t + '.files/info.txt'' -F ''name=' + name' -F ''description=' + description' -F ''type=' + reso' -F 'source=' + source' -F 'live=' + live' + url + API")

变量是 t、名称、描述、资源、来源、直播、URL 和 API

如何在 python 中发送 post 请求?我遇到了建议导入请求的答案,但如果我的文件路径中有一个变量,我会使用什么语法?

我认为最理想的方式是这样的:

import requests

url = "{YOUR URL}"

payload={}
files=[
  ('file',('filename',open('/pathtofile/filename','rb'),'application/{FILE_TYPE}'))
]
headers = {
}

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

print(response.text)

对于文件路径中的多个变量,您可以简单地连接两个或更多字符串,只需定义您的变量并将它们连接到文件路径中就可以了。

喜欢:

folder = "abc"
filepath = "C:/Users/xyz/" + abc 

您可以连接任意数量的字符串。因此,在 files 列表中,您可以简单地将 open() 函数中的字符串替换为您的文件路径变量,这样您的文件列表将变为:

files=[
  ('file',('filename',open(filepath,'rb'),'application/{FILE_TYPE}'))
]