需要减少 try 和 except 语句

Need to reduce try and except statements

我有这段代码(下)。我在 json 文件中有数据,我获取数据(下面的代码)。我压缩这些值并将它们写入 csv 文件。 我的问题是,如果 try 中不存在任何值,我想为该值放置一个 'None' 。我尝试过的(我认为是蹩脚的)-> 我添加了尝试,除了我在下面获取的每个值。我需要帮助才能更好地写这篇文章。

异常告诉我缺少什么值。例如,缺少 code。那么如何在 except 中处理这个问题并将 None 用于 code

 for i in range(len(res_1)):
        try:
            gp_code.append(res_1[i]['metadata']['annotations']['code'])
            ticket.append(res_1[i]['metadata']['annotations']['ticket'])
            node.append(res_1[i]['metadata']['annotations']['node-selector'])
            display_name.append(res_1[i]['metadata']['name'])
            status.append(res_1[i]['status']['phase'])
            timer.append(res_1[i]['metadata']['creationTimestamp'])
            lifetime.append(res_1[i]['metadata']['annotations']['lifetime'])
        except Exception as e:
            print(e)

您可以使用具有适当默认值的 get 并避免异常处理:

for x in res_1:
    gp_code.append(x.get('metadata', {}).get('annotations', {}).get('code', None)
    # ...

或者您可以将 exception/default 值处理放在一个函数中:

def _append(lst, obj, *items):
    try:
        for item in items:
            obj = obj[item]
        lst.append(obj)
    except KeyError:
        lst.append(None)

for x in res_1:
    _append(gp_code, x, 'metadata', 'annotations', 'code')
    # ...