是否从架构中不存在的JSON对象中删除属性?

问题描述 投票:5回答:1

[我正在使用Python的jsonschema来针对模式验证JSON文件。效果很好。但是现在我需要从JSON中删除架构中不存在的所有属性。

我知道根据the JSON Schema docs,我可以设置属性:

additionalProperties = false

拒绝具有其他属性的任何文件。但这只会reject属性,而不实际上是remove它们。

删除它们的最佳方法是什么?

我想我可以写自己的脚本了:

  • 遍历JSON文件的每个叶节点
  • 检查叶子节点在模式中是否存在
  • 如果不存在,则沿着树走直到找到确实存在的最高节点,然后在那一点上修剪分支。

我的问题是:是否有现有的Python库可以执行此操作,或者我需要编写一个?我已经用Google搜索,但是没有成功。

python json jsonschema
1个回答
0
投票

我看不到没有猴子修补Validator类中的iter_errors()方法的简单方法:

https://github.com/Julian/jsonschema/blob/master/jsonschema/validators.py#L296

© www.soinside.com 2019 - 2024. All rights reserved.