如何仅处理字典中的某些条目而不是全部条目的KeyError?

问题描述 投票:0回答:1

我正在使用从 sparql 查询检索的数据构建一个表。问题是某些条目在数据库中没有值,当我构建表时,我收到 keyerror 异常。如何处理异常,以便在触发异常的字段中放置 None ?到目前为止,“无”值被放置在整行上,但异常仅存在于该行的一个单元格中...... 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 separately

发生 KeyError 异常是因为数据库中的某些条目为 NULL,但代码也在搜索它们。怎么解决呢? 实际表如下:

此处,只有 BatteryLife 应为 None,但整行中都缺少结果。

python dictionary try-catch keyerror
1个回答
0
投票

我建议不要在这里使用列表理解。代码无法读取

解压代码后,您可以通过不同的方式继续操作:

  1. 检查密钥是否存在:
    if key in dict
  2. 返回默认键:
    dict.get(test, None)
© www.soinside.com 2019 - 2024. All rights reserved.