【问题标题】:Manipulation of returned argument处理返回的参数
【发布时间】:2017-09-19 06:03:06
【问题描述】:

与此question相关

我怎样才能使用下面的代码,所以如果第一个参数“F06_yes_1”的返回值是“on”,我怎么能把它改成“是的”

同样对于第二个参数“F06_no_1”,如果不为空,我该如何从“on”更改为“No”,

第三个参数“F06_na_1”从“on”到“NA

context1.update({
    'F06_1': kwargs['F06_yes_1'] \
             or kwargs['F06_no_1'] \
             or kwargs['F06_na_1'] \
}) 

【问题讨论】:

    标签: python data-manipulation


    【解决方案1】:

    在以下代码中,如果“F06_yes_1”为“on”,则为“yes”

    如果“F06_no_1”不为空,则为“否”,

    如果“F06_na_1”不为空,则为“NA”

    def is_on(arg):
        return arg == 'on'
    
    context1.update({
        'F06_1': ('yes' if is_on(kwargs.get('F06_yes_1', None) else None)
                 or ('No' if is_on(kwargs.get('F06_no_1', None)) else None)
                 or ('NA' if is_on(kwargs.get('F06_na_1', None)) else None)
    })
    

    【讨论】:

    • 使用上述答案的代码,当 F06_yes_1 为 Null 且 F06_no_1 不为 Null 时出现以下错误 context1.update({ 'F06_1': ('yes' if kwargs['F06_yes_1'] else None) 或 ('no' if kwargs['F06_no_1'] else None) 或 ('n/a' if kwargs['F06_na_1'] else None) })
    • 当 F06_yes_1 值为 null,并且 F06_no_1 值为“on”时,出现以下错误:response.body = self.handler() File "C:\Python27\lib\site-packages\cherrypy \lib\encoding.py”,第 217 行,在 call self.body = self.oldhandler(*args, **kwargs) 文件“C:\Python27\lib\site-packages\cherrypy_cpdispatch. py”,第 60 行,在 call 中 return self.callable(*self.args, **self.kwargs) 文件“example.py”,第 872 行,在 RPC_submit 'F06_1' 中:('yes ' if is_on(kwargs['F06_yes_1']) else None) KeyError: 'F06_yes_1'
    • 它回答了您提出的问题。如果您提供更多相关信息会更好。
    猜你喜欢
    • 1970-01-01
    • 2012-06-28
    • 2018-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    相关资源
    最近更新 更多