Нужна подробная ошибка при проверке схемы JSON PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Нужна подробная ошибка при проверке схемы JSON Python

Сообщение Anonymous »

У меня есть схема json ниже, я хочу использовать библиотеку Python для проверки входного json на соответствие заданной схеме, она использует версию Draft-08, то есть 2019-09. поэтому я попробовал использовать приведенный ниже код для того же самого, но он не дает подробной ошибки, например. в предоставленном примере повторная отправка входных данных имеет логический тип, поэтому она должна выдавать ошибку, поскольку она не имеет логического типа, а вместо этого код выдает ошибку как
схема:

Код: Выделить всё

{
"$schema": "http://json-schema.org/draft/2019-09/schema#",
"description": "my schema",
"definitions": {
"BCCI": {
"type": "object",
"additionalProperties": false,
"properties": {
"entityType": {
"description": "",
"type": "string",
"const": "default"
},
"function": {
"description": "",
"codelistName": "ADNFUN",
"type": "string",
"oneOf": [
{
"const": "01"
},
{
"const": "02"
},
{
"const": "09"
},
{
"const": "54"
}
]
},
"resending": {
"description": "",
"type": "boolean"
},
"afdDefinitionName": {
"description": "",
"customDescription": "",
"type": "string"
},
"originalMessageId": {
"description": "",
"customDescription": "",
"type": "string"
}
},
"required": [
"entityType",
"function",
"afdDefinitionName"
]
}
},
"type": "object",
"additionalProperties": false,
"properties": {
"BCCI": {
"type": "array",
"uniqueItems": true,
"allOf": [
{
"minContains": 1,
"maxContains": 1,
"contains": {
"$ref": "#/definitions/BCCI"
}
}
]
}
},
"required": [
"BCCI"
]
}


Ввод json:
< div class="snippet">

Код: Выделить всё

{
"BCCI": [
{
"entityType": "default",
"function": "01",
"resending": "false",
"afdDefinitionName": "example",
"originalMessageId": "12345"
}
]
}


Используемый код:
< div class="snippet">

Код: Выделить всё

import json
import jsonschema
from jsonschema import validate, validators, Draft7Validator, Draft201909Validator, Draft202012Validator
from jsonschema.exceptions import ValidationError

json_file = 'path to json instance'
json_schema_file = 'path to json schema instance'

with open(json_file) as f:
document = json.load(f)

with open(json_schema_file) as f:
schema = json.load(f)

errors = []
try:
validate(instance=document, schema=schema)
except jsonschema.exceptions.ValidationError as e:
print("----------------------------------------------------------")
print(e)
print("----------------------------------------------------------")

print(f"Error message: {e.message}")
print(f"Error tag: {e.json_path}")
print(f"Error tag: {list(e.path)}")
print(f"Definition: {e.validator}")


вывод:

Код: Выделить всё

----------------------------------------------------------
[{'entityType': 'default', 'function': '01', 'resending': 'false', 'afdDefinitionName': 'example', 'originalMessageId': '12345'}] does not contain items matching the given schema

Failed validating 'contains' in schema['properties']['BCCI']['allOf'][0]:
{'contains': {'$ref': '#/definitions/BCCI'},
'maxContains': 1,
'minContains': 1}

On instance['BCCI']:
[{'afdDefinitionName': 'example',
'entityType': 'default',
'function':  '01',
'originalMessageId': '12345',
'resending': 'false'}]
----------------------------------------------------------
Error message: [{'entityType': 'default', 'function': '01', 'resending': 'false', 'afdDefinitionName': 'example', 'originalMessageId': '12345'}] does not contain items matching the given schema
Error tag: $.BCCI
Error tag: ['BCCI']
Definition: contains


он ​​должен был вывести сообщение о логической ошибке или о наличии какой-либо другой проблемы с вводом json, но он не выдает подробную ошибку.

Подробнее здесь: https://stackoverflow.com/questions/781 ... ion-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Используйте имена пользовательских свойств при создании POJO из схемы json (для схемы yaml).
    Anonymous » » в форуме JAVA
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Подробная ошибка из асинтегии в Swiftui?
    Anonymous » » в форуме IOS
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Подробная ошибка из асинтегии в Swiftui?
    Anonymous » » в форуме IOS
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Ошибка при чтении XML и проверке схемы с XMLreader в PHP
    Anonymous » » в форуме Php
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Что такое HTML? Более подробная информация [закрыто]
    Anonymous » » в форуме CSS
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»