带有clarifai API的“格式错误或无效的请求”

时间:2020-01-21 05:10:22

标签: clarifai

以下对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'}}

3 个答案:

答案 0 :(得分:0)

您似乎需要使用:

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

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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

json_data = json.dumps(data)