#python #json #jsonschema
#python #json #jsonschema
Вопрос:
У меня есть файл 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. Схема JSON предназначена для проверки, а не фильтрации данных.
2. Не могли бы вы поделиться решением, если вы решили проблему? Спасибо!
3. Я бы предположил, что вам нужен валидатор схемы json для выполнения этой фильтрации. Итак, я думаю, вы могли бы спросить в github.com/Julian/jsonschema посмотреть, есть ли какой-либо способ использовать этот пакет для простой реализации фильтрации.
Ответ №1:
Я думаю, что нашел решение: http://docs.python-cerberus.org/en/stable/normalization-rules.html#purging-unknown-fields