在 Python 中根据 JSON 架构过滤 JSON 数据

Ele*_*ant 5 python json jsonschema

我正在寻找 Python 模块来根据架构过滤 JSON 数据。

例如有一个JSON数据:

{
    "system" : {
        "state" : "enabled",
        "id" : 5,
        "keys" : [
            { "key_id": 12, "key": "filename.key" }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

并且有 JSON 模式:

{
    "system": {
        "id": "system",
        "required": true,
        "type": "object",
        "properties": {
            "state": {
                "id": "state",
                "required": true,
                "type": "string"
            },
            "id": {
                "id": "id",
                "required": true,
                "type": "number"
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,架构不包含“keys”属性。

我需要一些工具,它可以使用架构过滤 JSON 数据并提供以下 JSON 作为输出:

{
    "system" : {
        "state" : "enabled",
        "id" : 5
    }
}
Run Code Online (Sandbox Code Playgroud)

Ele*_*ant 2

由于没有工具可以根据架构过滤 JSON 数据,因此我已按如下方式解决了我的任务。

创建了预期 JSON 文件的模板。实际上它已经是过滤后的 JSON 文件,但没有数据。

{
    "system" : {
        "state" : "",
        "id" : 0
    }
}
Run Code Online (Sandbox Code Playgroud)

然后浏览数据文件和模板文件,并将两个文件中存在的属性值从一个文件复制到另一个文件。