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