如何将Python请求库与IBMWatson API一起使用?

2024-05-23 17:29:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我现在正在思考IBMWatson自然语言理解API。 在官方教程页面中,它显示了使用api的基本curl命令,如下所示:

curl -X POST -u "apikey:{apikey}" \
--header "Content-Type: application/json" \
--data '{
  "url": "http://newsroom.ibm.com/Guerbet-and-IBM-Watson-Health-Announce-Strategic-Partnership-for-Artificial-Intelligence-in-Medical-Imaging-Liver",
  "features": {
    "sentiment": {},
    "categories": {},
    "concepts": {},
    "entities": {},
    "keywords": {}
  }
}' \
"{url}/v1/analyze?version=2019-07-12"

该命令基本上分析数据参数的url键中提供的页面,并返回分析结果。 我想使用Python的请求库执行相同的操作,不过我对它还不熟悉。据我从网上收集的资料,以下格式应与相同的请求相对应:

headers={'Content-Type': 'application/json'}

features = {"sentiment": {},"categories": {},"concepts": {},"entities": {},"keywords": {}}

myData ={
    "url": "http://newsroom.ibm.com/Guerbet-and-IBM-Watson-Health-Announce-Strategic-Partnership-for-Artificial-Intelligence-in-Medical-Imaging-Liver",
    "features": features
 }

d = requests.post(
                auth=('apikey','7LNEjCMvP6ZcNShjAkjPob7QSCfIHeZMQkn4Ho3dQgte'),
                headers=headers,
                data=myData,
                url='https://gateway-lon.watsonplatform.net/natural-language-understanding/api/v1/analyze?version=2019-07-12'
            )

但是,服务器以“400”响应,我认为这是由于我的格式错误造成的

  • 我已经测试过编辑我的apikey,这导致了错误代码401“Unauthorized”,正如预期的那样。因此,我知道我可以访问服务器并使用我的密钥进行身份验证
  • 我已经测试过删除“headers”参数,这导致415个“Unsupported Media Type”,所以我猜返回类型必须是JSON

我不确定我做错了什么,非常感谢任何帮助。谢谢


Tags: 命令apijsonhttpurldataapplicationtype