2

我有以下 Python 代码向 Clarifai 的人口统计端点发出 POST 请求:

import requests
import pprint

headers = {
    "Authorization": "Key MY_KEY",
    "Content-Type": "application/json"
}

data = {"inputs": [{"data": {"image": {"url": "https://samples.clarifai.com/demographics.jpg"}}}]}

proxies = {
    "http": "MY_HTTP_PROXY", 
    "https": "MY_HTTPS_PROXY"
}

response = requests.post('https://api.clarifai.com/v2/models/c0c0ac362b03416da06ab3fa36fb58e3/outputs', headers=headers, data=data, proxies=proxies, verify=False)

pprint.pprint(response.json())

请注意,我已经分别用 MY_KEY、MY_HTTP_PROXY 和 MY_HTTPS_PROXY 替换了我的真实 api 密钥和代理。

有 Clarifai 经验的人知道我做错了什么吗?我在 Clarifai 自己的论坛上看到了一个工作代码示例,但我看不出工作代码和我的代码之间有任何重大差异。

4

2 回答 2

1

只需将传递的数据转换为 json。

import requests
import pprint
import json

headers = {
    "Authorization": "Key MY_KEY",
    "Content-Type": "application/json"
}

data = {"inputs": [{"data": {"image": {"url": "https://samples.clarifai.com/demographics.jpg"}}}]}

json_data = json.dumps(data)

proxies = {
    "http": "MY_HTTP_PROXY", 
    "https": "MY_HTTPS_PROXY"
}

response = requests.post('https://api.clarifai.com/v2/models/c0c0ac362b03416da06ab3fa36fb58e3/outputs', headers=headers, data=json_data, proxies=proxies, verify=False)

pprint.pprint(response.json())
于 2020-01-06T06:24:56.580 回答
-1

数据变量周围需要引号

'data = {"inputs": [{"data": {"image": {"url": "https://samples.clarifai.com/demographics.jpg"}}}]}'
于 2018-06-19T19:37:56.287 回答