首页 > 解决方案 > Django / Python检查键是否存在,然后以高效和pythonic的方式有条件地更改键的值

问题描述

我想检查 key 是否存在,request.query_params如果存在,那么我正在检查值,如果它有't'然后将其更改为 boolean Trueelse False。下面是我写的代码,但看起来很糟糕,有没有一种干燥有效的方法?

# [...]
    # [...]
    if "active" in request.query_params:
        if "t" in request.query_params["active"].lower():
            request.query_params["active"] = True
        else:
            request.query_params["active"] = False

    if "sensitivity" in request.query_params:
        if "t" in request.query_params["sensitivity"].lower():
            request.query_params["sensitivity"] = True
        else:
            request.query_params["sensitivity"] = False
    # [...]

标签: pythondjango-rest-framework

解决方案


定义keys = ['active', 'sensitivity']然后做什么

for key in keys:
    obj = request.query_params.get(key)
    if obj is None:
        continue
    request.query_params[key] = "t" in obj.lower()

或等效地,

for key in keys:
    obj = request.query_params.get(key)
    if obj is not None:
        request.query_params[key] = "t" in obj.lower()

推荐阅读