我正在尝试从Datumbox API中做twitter情感分析功能,并且一直存在问题。我调用API的函数如下所示:
def call(text):
api_key = '<my_api_key>'
base_url = "http://api.datumbox.com/1.0/TwitterSentimentAnalysis.json?"
response = requests.get(base_url+'api_key='+api_key+'&'+'text='+text)
data = response.json()
result = data['output']['result']
return result大多数情况下,这个函数可以工作。然而,在我尝试运行函数几百次之后,我一直将KeyError:'result‘作为错误。以下是API的文档:
JSON Response:
{
"output": {
"status": 1,
"result": "positive"
}
}JSON“结果”值:在此函数中,上述JSON结果字段的可能值为:“正”、“负”或“中性”
有人知道我的功能可能出了什么问题吗?
发布于 2016-12-12 18:55:10
来自API的文档:
如果在执行调用时发生错误,则我们的API将返回状态为0。在这种情况下,它还会产生错误代码和错误消息。以下是错误回复的样子: {“输出”:{“状态”:0,“错误”:{ "ErrorCode":6,"ErrorMessage":“无效帐户”}}
首先要检查status是否设置为1,然后再尝试访问result键,因为如果status设置为0,则不会有这样的键:
data = response.json()
if data['output']['status']:
return data['output']['result']
else:
raise SomeException(
'Failed to get a result, error {0[ErrorCode]}, {0[ErrorMessage]!r}'.format(
data['output']['error']))https://stackoverflow.com/questions/41107499
复制相似问题