我试图修改字典中的一个键值,如果键值为None或key不存在,则应该将其设置为另外两个键值的相加。
但是,我在尝试添加None的'unsupported operand type(s) for +: 'NoneType' and 'NoneType'
时出错
我如何才能最好地编写这个来处理丢失的键或存在但没有值的键? 我尝试的代码是:
for quote in quotes_results:
exit_fee_combined = quote.get('exitFeeA', None) + quote.get('exitFeeB', None)
quote.setdefault('exitFeeCombined', exit_fee_combined)
下面这段可怕的代码完成了这项工作,但似乎过于复杂(我不能使用setdefault,因为如果找到键,它将不使用默认值,而是使用None
作为值)。
有什么改进的方法吗
for quote in quotes_results:
exit_fee_A = quote.get('exitFeeA', None)
exit_fee_B = quote.get('exitFeeB', None)
if exit_fee_A and exit_fee_B:
exit_fee_combined = exit_fee_B + exit_fee_A
elif exit_fee_A or exit_fee_B:
exit_fee_combined = exit_fee_A or exit_fee_B
else:
exit_fee_combined = None
existing_combined_fee = quote.get('exitFeeCombined', None)
if not existing_combined_fee:
quote['exitFeeCombined'] = exit_fee_combined
在本例中,最简单的解决方案是正确选择
get
的结果。既然加0对数字没有影响,那就这么做吧。如果值是字符串,请使用""
而不是0
根据乔恩的评论,这是最好的解决方案:
相关问题 更多 >
编程相关推荐