python中返回3个变量的值的最佳方法是什么,而不是null。
只有1个变量的1个不会为null。到目前为止,我正在使用此非高效代码
if kwargs.get('F06_yes_1'):
context1.update({'F06_1': kwargs['F06_yes_1']})
elif kwargs.get('F06_no_1'):
context1.update({'F06_1': kwargs['F06_no_1']})
else:
context1.update({'F06_1': kwargs['F06_na_1']})
此外,要进行替换(根据您的评论),您可以尝试:
context1.update({
'F06_1': ('yes' if kwargs['F06_yes_1'] else None)
or ('no' if kwargs['F06_no_1'] else None)
or ('n/a' if kwargs['F06_na_1'] else None)
})
更远地到下面提供的答案时,当F06_YES_1值为null时,F06_NO_1值在"我"中,我收到以下错误:
Traceback (most recent call last):
File "C:Python27libsite-packagescherrypy_cprequest.py", line 670, in respond
response.body = self.handler()
File "C:Python27libsite-packagescherrypylibencoding.py", line 217, in __call__
self.body = self.oldhandler(*args, **kwargs)
File "C:Python27libsite-packagescherrypy_cpdispatch.py", line 60, in __call__
return self.callable(*self.args, **self.kwargs)
File "example.py", line 872, in RPC_submit
'F06_1': ('yes' if kwargs['F06_yes_1'] else None)
KeyError: 'F06_yes_1'
或操作将选择第一个非单位值。
context1.update({
'F06_1': kwargs['F06_yes_1']
or kwargs['F06_no_1']
or kwargs['F06_na_1']
})
此外,要进行替换(根据您的评论),您可以尝试:
context1.update({
'F06_1': ('yes' if kwargs.get('F06_yes_1', None) else None)
or ('no' if kwargs.get('F06_no_1', None) else None)
or ('n/a' if kwargs.get('F06_na_1', None) else None)
})
您正在获取KeyError,因为您正在尝试查找不存在的记录。为了更优雅地处理它,您可以使用.get方法与第二个参数一起使用,如果键不存在,该方法作为默认返回值。