我想知道是否有一个现有的 Python 库,用于通过保留文档原始结构的完整密钥路径过滤 JSON 文档。这是一个例子:
输入
d = {"a": {"b": "c", "d": "e"}, "f": [{0: 0}, {1: 1}]}
keyPaths = ["a.b", "f[1]"]
期望的输出
{"a": {"b": "c"}, "f": [{1: 1}]}
我找到的最接近的解决方案是jmespath MultiSelect Hash操作;但是,我认为它不能创建完整的层次结构。例如:
jmespath.search("{a: a.b, f: f[1]}", d)
产量{'a': 'c', 'f': {1: 1}}
但它不允许a.b
作为 keyval-expr 的标识符,即{a.b: a.b}
无效。一种解决方案是使用 MultiSelect Hash 和代码来为每个关键路径生成缺失的结构。我想知道是否有更优雅的解决方案。