lambda 赋值方式

lambda way to assign a value

在我的 python 代码中,我想根据输入将“name”值分配给“request_body”,就像这样:

def make_api_call(context, name, ...):
    api_name = f"<my_API_Call_URL_here>"
    request_body= {}
    request_body["name"] = lambda name:  "" if name == "BLANK" else name
    ...
    context.base.execution_call(context, api_name, request_body, "post")

    

在 lambda 中将字符串值分配给 request_body["name"] 的正确方法是否正确?

不知何故,当我最后进行 api 调用时,我收到了这样的错误消息:

TypeError: Object of type function is not JSON serializable

lambda 是创建小函数的另一种方法,在您的情况下不需要它。你应该使用类似的东西:

request_body["name"] = "" if name == "BLANK" else name

你不能在不调用的情况下使用 lambda 来“赋值”:

>>> a = lambda name: "" if name == "BLANK" else name
>>> type(a)
<class 'function'>

如果你想要那么糟糕的 lambda,试试这个

test_name = lambda x:  "" if x == "BLANK" else x
request_body["name"] = test_name(name)