【问题标题】:'Malformed or invalid request' with clarifai api带有 clarifai api 的“格式错误或无效的请求”
【发布时间】:2020-03-09 17:05:38
【问题描述】:

以下对 clarifai api 的请求有什么问题-

import requests
image_url='https://samples.clarifai.com/food.jpg'
api='Key cb03ceba3c8842aeadd55dcb2f0be152'
headers = {
    'Authorization': api,
    'Content-Type': 'application/json',
}

data = '{"inputs": [{"data": {"image": {"url": image_url}}}]}'

url='https://api.clarifai.com/v2/models/bd367be194cf45149e75f01d59f77ba7/outputs'
response = requests.post(url=url, headers=headers, data=data)
print(response.status_code, response.json())

我一直遇到这个错误-

400 {'status': {'code': 11102, 'description': 'Invalid request', 'details': 'Malformed or invalid request'}}

【问题讨论】:

  • 如果下面的答案之一对您有帮助,请记得标记它以帮助其他有类似问题的人!我也很好奇这个问题是否仍然是一个问题......

标签: clarifai


【解决方案1】:

看起来你需要使用:

'{"inputs": [{"data": {"image": {"url": "' + image_url + '"}}}]}'

由于单引号是创建一个字符串,所以不能直接添加一个变量,而是需要将它连接起来。您实际上是在发送文本 image_url 而不是该语句中变量 image_url 的实际值。

【讨论】:

    【解决方案2】:

    您还需要更正标题以获得有效响应

    header = {'Authorization': 'Key '+ api_key ,"Content-Type": "application/json"}
    

    【讨论】:

      【解决方案3】:

      您必须将数据转换为 JSON,而 json.dumps() 会将数据转换为 JSON。

      data = {"inputs": [{"data": {"image": {"url": image_url}}}]}

      json_data = json.dumps(data)

      【讨论】:

        猜你喜欢
        • 2021-03-16
        • 2017-12-16
        • 1970-01-01
        • 2017-11-04
        • 1970-01-01
        • 2015-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多