我有这段代码(下面)。我在json文件中有数据,我获取数据(下面的代码)。我将这些值压缩并将其写入csv文件。
我的问题是,如果try
中没有任何值存在,我想提出一个'无'在那边为那个价值。我尝试了什么(我觉得很蹩脚) - >我添加了try,除了我在下面提取的每个值。我需要更好的写作帮助。
Exception告诉我缺少什么价值。例如,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)
答案 0 :(得分:0)
您可以将get
与适当的默认值一起使用,并完全避免异常处理:
for x in res_1:
gp_code.append(x.get('metadata', {}).get('annotations', {}).get('code', None)
# ...
或者您可以将异常/默认值处理放在函数中:
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')
# ...