问题描述
我正在使用从sparql查询中检索的数据构建表。问题是某些条目在数据库中没有值,并且当我构建表时,出现keyerror异常。如何处理异常,以便将“无”放置在触发异常的字段中?到目前为止,无值被放置在整行中,但是该例外仅存在于该行的一个单元格中。 python代码如下:
for j in range(len(results['results']['bindings'])): # effective results from database
try:
data.append([[results['results']['bindings'][j][results['head']['vars'][i]]['value']] for i in
range(len(results['head']['vars']))])
except KeyError:
data.append([None]) # get each line sepparately
发生KeyError异常是因为某些条目在数据库中为NULL,但是代码也在搜索它们。怎么解决呢? 实际表如下:
在这里,只有BatteryLife应该为None,但是整行都缺少结果。
解决方法
我建议在此处不要使用列表理解功能。代码不可读
一旦您解压缩了代码,就可以采用不同的方式进行操作
- 检查密钥是否存在:
if key in dict
- 返回默认密钥:
dict.get(test,None)