Как фильтровать JSON через Jsonschema в Python

У меня есть json-файл в Python и относительная json-схема, я хочу отфильтровать из входного 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?

1 ответ

Другие вопросы по тегам