【问题标题】:How to filter json via jsonschema in python如何在python中通过jsonschema过滤json
【发布时间】:2016-10-24 20:03:24
【问题描述】:

我有一个 Python 中的 json 文件和一个相对的 json-schema, 我想从输入 json 文件中过滤掉所有不满足相对 json 模式的元素。

例如:

架构

{
  "type":"object",
  "$schema": "http://json-schema.org/draft-03/schema",
  "required":false,
  "properties":{
    "address": {
      "type":"object",
      "required":true,
      "properties":{
        "city": {
          "type":"string",
          "required":true
        },
        "houseNumber": {
          "type":"number",
          "required":false
        },
        "streetAddress": {
          "type":"string",
          "required":true
        }
      }
    },
    "phoneNumber": {
      "type":"array",
      "required":false,
      "items":
      {
        "type":"object",
        "required":false,
        "properties":{
          "number": {
            "type":"string",
            "required":false
          },
          "type": {
            "type":"string",
            "required":false
          }
        }
      }
    }
  }
}

Json 输入:

{
  "address":{
    "streetAddress": "21 2nd Street",
    "city":"New York",
    "houseNumber":12
  },
  "phoneNumber":
    [
    {
      "type":"home",
      "number":"212 555-1234",
      "description":"blabla"
    }
  ]
}

元素 "description":"blabla" 不存在于 json 架构中,必须进行过滤。

Json 输出:

{
  "address":{
    "streetAddress": "21 2nd Street",
    "city":"New York",
    "houseNumber":12
  },
  "phoneNumber":
    [
    {
      "type":"home",
      "number":"212 555-1234"
    }
  ]
}

我找到了这个https://github.com/alank64/json-schema-filter,但它是用于 javascript 的。 你知道任何可以在 python 中执行的脚本吗?

【问题讨论】:

  • JSON Schema 是为验证而非过滤数据而设计的。
  • 如果您解决了问题,您能分享一下解决方案吗?谢谢!
  • 我假设您需要一个 json 模式验证器才能执行此过滤。所以我想你可以在github.com/Julian/jsonschema 中询问是否有任何方法可以使用该包轻松实现过滤。

标签: python json jsonschema


【解决方案1】:
猜你喜欢
  • 2018-10-03
  • 2021-03-05
  • 1970-01-01
  • 1970-01-01
  • 2021-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多