【发布时间】:2015-03-09 10:37:50
【问题描述】:
在 Bluemix 中,我尝试从 Python 调用 IBM Watson 关系提取 API。首先,我在 Bluemix 上创建一个应用程序并将关系提取器 api 绑定到它。然后从 API 的下拉菜单中,我从实例化凭据中获取用户名和密码。在下面的 coe 中,我已将其替换为 bluemux-username 和 bluemix-password。我为此编写的 Python 代码如下:
import requests
import json
url="https://gateway.watsonplatform.net/relationship-extraction-beta/api/v1/sire/0"
username="bluemix_username"
password="bluemix_passowrd"
with open ("data.txt", "r") as myfile:
text=myfile.read().replace('\n', '')
raw_data = {
'contentItems' : [{
'contenttype' : 'text/plain',
'content': text
}]
}
input_data = json.dumps(raw_data)
response = requests.post(url, auth=(username, password), headers = {'content-type': 'application/json'}, data=input_data)
try:
response.raise_for_status()
except requests.exceptions.HTTPError as e:
print("And you get an HTTPError: %s"% e.message)
但是,当我运行它时,我收到以下错误:
And you get an HTTPError: 400 Client Error: Bad Request
*注意:我对个性洞察 API 使用了相同的方法,并且效果很好。
有什么想法吗?
谢谢
【问题讨论】:
-
API 文档 (ibm.com/smarterplanet/us/en/ibmwatson/developercloud/apis/#!/…) 说用于关系提取的 HTTP 方法是 GET,并且需要一个强制参数
txt。 -
感谢您的回复@kedar,我尝试了以下
response = requests.get(url, auth=(username, password), headers = {'content-type': 'text/plain'}, data=text)并得到了`你得到一个 HTTPError: 400 Client Error: Error` -
改用
requests.get(url+'?txt='+text, auth=(username, password)) -
谢谢,但同样的错误。
-
您是否更改了文档中指定的网址?
标签: python ibm-cloud ibm-watson