所以我有一个问题,因为我刷新页面的任何时候我都会收到一个Key Error,它在第一次重新加载页面时效果很好但第二次失败。
这是粗略的结构:
def myAPICall()
response = myclient.REST(URL)
data = response.json()
return data
@app.route('/index', methods=['GET'])
def passData():
data = myAPICall()
for x in data:
make some changes to the dictionary
return (render_template('index.html', data=data))
刷新页面后,我会对“数据”中的某个键进行操作。字典。
如果我重新启动服务器它将正常工作,但下次刷新KeyError时将再次出现。
任何想法都会受到高度赞赏,我一直试图解决这个问题。
错误讯息:
[ d2['id'] for d2 in data if d2['asset_id'] == d1['id'] ]
KeyError: 'id'
答案 0 :(得分:0)
根据您的错误消息,我假设data
包含对象列表。现在,并非所有这些对象都具有键id
。因此,不要直接在d1
或d2
中查找,而是使用d2.get('id', 'alternate_default_value')
。
现在,如果您想知道为什么缺少密钥,您需要提供更多详细信息,即您要提取的数据类型等。