2

我用dpath一种更简洁的方式访问嵌套字典。

dpath可以这样做:

result = dpath.util.get(data, "/data/attributes/policy_revision/policy")

代替:

result = data.get("data", {}).get("attributes", {}).get("policy_revision", {}).get("policy", "")

但是,使用的唯一问题是当路径中的任何键都不存在时dpath,我会得到一个。KeyError而使用get允许我指定默认值,以防找不到密钥。

我可以尝试捕获KeyError异常,但这会使代码变得更长和更复杂,失去dpath最初给我的整洁。

我的问题是,如何在 中指定默认值dpath

这是他们的文档,但我没有找到任何相关内容:https ://pypi.org/project/dpath/

4

1 回答 1

3

你可以在他们的 github repo 中找到他们如何处理默认值:

https://github.com/dpath-maintainers/dpath-python/blob/master/dpath/util.py

线路:148,173~175

代码:

import dpath.util
x = {
    "a": {
        "b": {
        "3": 2,
        "43": 30,
        "c": [],
        "d": ['red', 'buggy', 'bumpers'],
        }
    }
}
print(dpath.util.get(x, '/a/b/42', default = -1))
print(dpath.util.get(x, '/a/b/43', default = -1))

结果:

-1
30
于 2021-05-11T09:32:47.127 回答