在post请求中发送多个文件

2024-09-27 00:20:34 发布

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

我试图在一个post请求中发送多个文件。下面是我使用的代码。在

orig_src = "./orig_src/"
url = "http://"+server+":"+port+"/my_service"
files = []
for root, dirs, files in os.walk(orig_src):
    for fileName in files:
        if len(files) > 0:
            relDir = os.path.relpath(root, orig_src)
            relFile = os.path.join(relDir, fileName)
            files.append(('srcFile', (fileName, open(orig_src+relFile, 'rb'))))
response = requests.post(url, files = files)

尝试执行此操作时出现以下错误:

^{pr2}$

你知道错误在哪里吗?前面我使用-F选项创建了一个curl请求,并使用操作系统命令。一切顺利。但我现在无法发送邮寄请求。我哪里出错了?在


Tags: 文件pathinsrcurlforos错误
1条回答
网友
1楼 · 发布于 2024-09-27 00:20:34

正如回溯的解释(in join),您将向os.path.join传递一个元组。在

您需要为传递给请求的列表提供一个更好的名称,因为您在将其声明为空列表之后将重用该名称files。在

  • 首先在第3行中将files定义为空列表
  • 然后将files定义为从第4行for循环中解包的元组收到的第三个项。在

由于您正在适当地修改files,所以您正在向列表中添加元组。Python希望您理解这一点,并最终遍历列表,直到它到达第一个元组。在本例中,fileName现在是一个元组,您将它传递给os.path.join,它需要一个字符串,而不是一个元组。在

改变两个绑定中的一个,你应该没事。在

相关问题 更多 >

    热门问题