通过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)?没有文件参数?