变量的返回值不是零



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方法与第二个参数一起使用,如果键不存在,该方法作为默认返回值。

相关内容

  • 没有找到相关文章

最新更新