1

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

3 回答 3

0

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

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

json_data = json.dumps(data)

于 2020-03-09T08:59:48.790 回答
0

看起来你需要使用:

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

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

于 2020-01-21T15:32:08.313 回答
0

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

header = {'Authorization': 'Key '+ api_key ,"Content-Type": "application/json"}
于 2020-01-26T09:39:49.927 回答