问题标签 [dpath]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python dpath.util.get 空字符串键错误
我读了一个简单的 JSON 文本文件,它解析为一个 dict 就好了。
我想获取特定元素,我通常使用 dpath 包。但是,在这种情况下,我收到一个错误,这似乎暗示我
我没有看到任何空字符串键,只有上面的两个。我可以使用其他一些看似随机的 JSON 文本文件进行重现,但对其他人来说效果很好。知道这里发生了什么吗?
python - dpath.utils:TypeError:类型类的对象没有 len()
我有一条路。使用 dpath-utils,我通过根据路径长度创建子键来创建字典。但在当前示例中,我的路径长度很短,如下所示。
注意: 如果路径很长:“/cbghb6b2861f919f6ffc238a0c5cffed63436/bbc238a0c5cffed6343fc238a0c5cffed63436”。我解释了这一点,因为这就是我使用 dpath.utils 的原因
我使用 dpath.utils 将路径添加到字典的相应键,如下所示。
但是使用路径调用时出现此错误。
输出:
但是当我直接打电话时,没有问题,但我不想直接打电话。因为我可能想在其子键之一中获取值。以及这有多低。
输出:
python - 使用 dpath.util 或其他任何东西从 json 返回键路径的标记值
我有这个 json :
我正在尝试使用 dpath.util.get 获取 json 中每次出现“名称”的所有值,以获得关键路径
运行后出现此错误:
预期结果:
我正在尝试这样做,因为 json 可以更改,并且该路径始终与特定的 json 相关。我对其他解决方案也没有问题。
python - 如何使用 dpath 库添加新的字典值?
我有一种 python 字典键值行和列,如下所示。我想要做的是我想在行索引 0 和列索引 0 处添加一个新字段“another_new_field”。
我使用dpath 库来执行此操作,在这里我尝试做的是
如结果所示,它不会附加新字段,而是用新字段替换现有值。但我希望它是这样的:
我怎样才能做到这一点?谢谢。
python - 使用 dpath 时如何避免 KeyError?
我用dpath
一种更简洁的方式访问嵌套字典。
我dpath
可以这样做:
代替:
但是,使用的唯一问题是当路径中的任何键都不存在时dpath
,我会得到一个。KeyError
而使用get
允许我指定默认值,以防找不到密钥。
我可以尝试捕获KeyError
异常,但这会使代码变得更长和更复杂,失去dpath
最初给我的整洁。
我的问题是,如何在 中指定默认值dpath
?
这是他们的文档,但我没有找到任何相关内容:https ://pypi.org/project/dpath/
python - Python 包“dpath”segments.py 在简单的“isinstance”调用中提供无限递归
尝试使用 swagger codegen 为我正在为工作做的项目自动生成一些客户端库。显然,swagger 本身没有 python 版本,但它们链接到社区支持的 swagger-py 代码生成。用 pip 安装它,尝试在我的项目 OpenAPI repo 上运行,我收到错误“RecursionError:instancecheck中超出最大递归深度”
这是堆栈跟踪:
如果只是这个 swagger codegen 的社区 python 实现,我会理解,但它发生在 isInstance 中。
看起来好像它到达了 dpath 站点包(不熟悉这个,也许 swagger_py_codegen 添加了它),它到达了段,然后有一个函数可以检查某物是否是叶子。
这是segments.py的相关部分:
我很确定 isinstance 只是标准库的一部分,所以我不能调整它。但是从 dpath 中查看这个 leaf(thing) 方法,我看不出是什么导致了错误。
到目前为止我已经尝试过:
我尝试编辑segments.py 将最大递归数增加到10,000。这只会导致永远运行。我把它单独放置了 5 分钟,但它仍然没有完成。
所以它的某种无限递归循环,但假设 isinstance 是正确的,我无法从那个简单的叶子(事物)调用中找出导致问题的原因
python-3.x - 使用 python dpath 库删除嵌套对象
我想使用 python 的 dpath 执行删除操作,并使用 separator 参数删除嵌套对象。但我无法删除嵌套对象。下面是我的代码
删除操作后,字典是{'a': {'b': {}}}
,而所需的字典是{'a':{}}
更新:我希望能够在对象下一个接一个地删除一个键b
,最后删除空b
本身。预期结果应该是{'a':{}}