我试图在一个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请求,并使用操作系统命令。一切顺利。但我现在无法发送邮寄请求。我哪里出错了?在
正如回溯的解释(
in join
),您将向os.path.join
传递一个元组。在您需要为传递给请求的列表提供一个更好的名称,因为您在将其声明为空列表之后将重用该名称
files
。在files
定义为空列表files
定义为从第4行for循环中解包的元组收到的第三个项。在由于您正在适当地修改
files
,所以您正在向列表中添加元组。Python希望您理解这一点,并最终遍历列表,直到它到达第一个元组。在本例中,fileName
现在是一个元组,您将它传递给os.path.join
,它需要一个字符串,而不是一个元组。在改变两个绑定中的一个,你应该没事。在
相关问题 更多 >
编程相关推荐