我需要用多个图像点击fastapi
@app.post("/text")
def get_text(files: List[UploadFile] = File(...)):
当我尝试使用/docs界面上传多个图像时,它的工作,我尝试了一个文件,它的工作很好,这里是它的代码
import requests
import json
def get_text(image_path):
#images={}
url = 'http://address/text'
try:
with open(image_path, "rb") as im:
image_data={"files":im}
response=requests.post(url,files=image_data)
return json.loads(response.text)
except Exception as er:
print("error occured")
return "{} error occured".format(er)
当我尝试添加更多的图像到image_data,但我得到错误。
image_data ={"files":[]}
for image in image_list:
with open(image, "rb") as im:
image_data['files'].append(im)
试过上面的代码,但是没有用。
错误信息后运行上述错误消息
我终于找到了解决方案,这不是fastapi的问题,它与请求库有关
如果有人需要这里的解决方案,它是
files = [
('files', ('image1', open('/Users/ai/image1.jpg','rb'), 'image/png')),
('files', ('image2', open('/Users/ai/image2.jpeg','rb'), 'image/png'))
]
你可以对多个文件使用下面的函数
import requests
import json
def get_text(image_list,url):
try:
image_data=[]
for image in image_list:
image_data.append(('files',(image.split('/')[-1],open(image,'rb'),'image/png')))#('files',(image_name,open image,type))
response=requests.post(url,files=image_data)
return json.loads(response.text)
except Exception as er:
print("error occured")
return "{} error occured".format(er)
你可以在这里查看文档
谢谢. . !