У меня есть большой json, который я не хочу загружать в память. Я хотел бы подтвердить это против схемы JSON в моде . Все библиотеки, которые я мог найти до сих пор, только проверяют полностью загруженные объекты JSON (например, Pydantic или
https://github.com/python-jsonschema/jsonschema). Что я, в то время как я, это какой -то способ, чтобы подтвердить его питание оригинального чанка JSON по кучу, то есть управлять размером буфера.
Это может выглядеть так:
Код: Выделить всё
import pydantic # I use V2
import ijson
import pathlib
class A(pydantic.BaseModel):
i: int
a: list[int]
s: str
jsonpath = pathlib.Path("some.json")
validator = MyValidator(schema=A.model_json_schema())
with jsonpath.open("rb") as file:
for prefix, event, value in ijson.parse(file, use_float=True):
validator.event((prefix, event, value))
print(validator.errors)
Представьте себе, что файл. Я не хочу загружать весь объект в память (это то, что будет делать Pydantic), но я хочу убедиться, что некоторые. Json соответствует схеме . Valyator.errors может дать мне список ошибок, которые будут пустыми в тех случаях, где нет, где обнаружено.
Подробнее здесь:
https://stackoverflow.com/questions/793 ... ng-fashion