API调用的KeyError

时间:2014-06-09 20:15:49

标签: python json api

我试图让这个脚本工作。我想得到一个同义词列表,但我总是得到同样的错误"第26行:KeyError:' term'。让我发疯了!

import requests
import workflow
import console
import json

term = workflow.get_variable('term')

URL = 'http://openthesaurus.softcatala.org/synonyme/search?q=' + term +  '&format=application/json'

terms = requests.get(URL)

list = []

if terms.status_code == 500:
    console.hud_alert('No Synonyms Found', 'error', 1)
    workflow.stop()

elif terms.status_code == 200:
    console.show_activity('Construint la llista...')

    for element in terms.json()['metaData']['term']:
        list.extend(element['list']['synonyms'].split('|'))

    workflow.set_output('\n'.join(list))

1 个答案:

答案 0 :(得分:0)

您从检查网站是否正常工作(状态代码200)到假设有效字典带回元素'元数据'和' term'。编码不好的做法。不要假设任何事情,特别是如果它来自 ALIEN WORLDS (互联网/客户/等)。

我建议您在尝试访问这些元素之前先确保这些元素存在。

if 'metaData' in element:
    if 'term' in element['metaData']:
        list.extend(.......)

您会注意到“' term'确实不是你提到的字典。