通过RESTAPI调用使用Python请求上载多个文件

通过RESTAPI调用使用Python请求上载多个文件,python,rest,python-requests,Python,Rest,Python Requests,我可以使用以下代码上载单个文件: import requests notes = {'notes_pdf':'notes1.pdf','name':'notes_name1'} url = "https://www.example.in/notes/api/v1/uploadNotes" files = {'notes_pdf': open(notes['notes_pdf'], 'rb')} response = requests.request("POST", url, params=q

我可以使用以下代码上载单个文件:

import requests

notes = {'notes_pdf':'notes1.pdf','name':'notes_name1'}
url = "https://www.example.in/notes/api/v1/uploadNotes"

files = {'notes_pdf': open(notes['notes_pdf'], 'rb')}
response = requests.request("POST", url, params=querystring, files=files, data=notes)

return response.json()
file_list = [note['notes_pdf'] for note in multiple_notes]  # get file name
files = {}
for file in file_list:
    files[file]=open(file, 'rb')
res = requests.post(url, files=files, ...)
现在,我想发送多个文件,外部RESTAPI接受以下格式的notes对象

multiple_notes = [{'notes_pdf':'notes1.pdf','name':'notes_name1'}, {'notes_pdf':'notes2.pdf','name':'notes_name2'}]

我无法以这种方式发送对象。任何帮助都将不胜感激。谢谢。

我不知道这个API接受相同的文件对象名? 如果API接受类似于
notes1.pdf
notes2.pdf
的文件名,则可以使用以下代码:

import requests

notes = {'notes_pdf':'notes1.pdf','name':'notes_name1'}
url = "https://www.example.in/notes/api/v1/uploadNotes"

files = {'notes_pdf': open(notes['notes_pdf'], 'rb')}
response = requests.request("POST", url, params=querystring, files=files, data=notes)

return response.json()
file_list = [note['notes_pdf'] for note in multiple_notes]  # get file name
files = {}
for file in file_list:
    files[file]=open(file, 'rb')
res = requests.post(url, files=files, ...)

如果您想要如上所述的
notes[0]['notes\u pdf']
notes[1]['notes\u pdf']
,那么它应该可以工作:

multiple_notes = ({'notes_pdf':'notes1.pdf','name':'notes_name1'}, 
                  {'notes_pdf':'notes2.pdf','name':'notes_name2'})

根据需要,您可以在POST请求中使用元组

您是否注意到
多个注释中有一个错误
。在
notes\u name1
notes\u name2
之前有两个引号,这可能不是问题所在。你能编辑你的问题并添加错误信息吗。另外,您是否可以尝试使用
multiple_notes=json.dumps([{'notes\u pdf':'notes1.pdf','name':'notes\u name1'},{'notes\u pdf':'notes2.pdf','name':'notes\u name2'}])
。要这样做,您需要
导入json
是的,这是一个输入错误。谢谢你指出这一点。但是,问题是如何以特定格式发送多个文件。外部API只会像这样尝试上传-notes[0]['notes\u pdf']、notes[1]['notes\u pdf']等等..不,我已经尝试过了。API从列表中的对象接受文件。那么,我应该以以下方式请求:response=requests.request(“POST”,url,params=querystring,data=teste)?没有文件参数?