【问题标题】:Trying to call an API with an image but keeps getting ValueError尝试使用图像调用 API 但不断收到 ValueError
【发布时间】:2020-06-26 13:59:38
【问题描述】:

我一直在遵循此线程上给出的建议:How to pass image to requests.post in python?

但是,我遇到了错误“ValueError: read of closed file”。

我一直在尝试调用一个执行某些图像识别的 API。目前,我正在使用 Postman 的表单数据功能将其发送到 Django 服务器,然后使用“请求”来调用 API。让我给你看一下代码sn-p。

def post(self, request):

    img = request.FILES["file"]
    with img.open("rb") as f:
        files = {"fileToUpload": f}
    url = "http://XXXXXXXXXXXXXXXX/getSimilarProducts?APIKEY=XXXXXXX"
    response = requests.post(url, files=files)

发送请求后,当我使用调试器检查每个变量时,“img”变量包含一个临时上传的文件,如下所示:

<TemporaryUploadedFile: XXXXXXXXXXXXXX.png (image/png)>

我错过了什么?我应该怎么做才能克服这个错误?提前非常感谢!

【问题讨论】:

    标签: python django python-requests


    【解决方案1】:

    响应应在 with 上下文中

    def post(self, request):
        img = request.FILES['file']
        with img.open('rb') as f:
            files = {'fileToUpload': f}
            url = 'http://XXXXXXXXXXXXXXXX/getSimilarProducts?APIKEY=XXXXXXX'
            response = requests.post(url, files=files)

    【讨论】:

      猜你喜欢
      • 2021-02-03
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-23
      • 1970-01-01
      相关资源
      最近更新 更多