Добавлена валидация в ParsManager

This commit is contained in:
Ilia Miheev
2025-09-30 21:03:11 +03:00
parent 0fd3d26645
commit 5589e95fb2
+25 -1
View File
@@ -1,5 +1,6 @@
import json import json
from pprint import pprint from pprint import pprint
from cerberus import Validator
class JsonManager: class JsonManager:
'''Класс для работы с json файлами во время парсинга''' '''Класс для работы с json файлами во время парсинга'''
@@ -8,6 +9,13 @@ class JsonManager:
'''Конструктор '''Конструктор
encoding: кодировка открываемого файла''' encoding: кодировка открываемого файла'''
schema = {
'encoding': {'type': 'string'}
}
v = Validator(schema)
if not v.validate({'encoding': encoding}):
raise ValueError(v.errors)
self.encoding = encoding self.encoding = encoding
def pprint(self, data: any) -> None: def pprint(self, data: any) -> None:
@@ -20,6 +28,14 @@ class JsonManager:
'''Получаем данные из json файла '''Получаем данные из json файла
pathToJsonFile: путь до json файла''' pathToJsonFile: путь до json файла'''
schema = {
'pathToJsonFile': {'type': 'string'}
}
v = Validator(schema)
if not v.validate({'pathToJsonFile': pathToJsonFile}):
raise ValueError(v.errors)
with open(pathToJsonFile, encoding=self.encoding) as jsonFile: with open(pathToJsonFile, encoding=self.encoding) as jsonFile:
src = json.load(jsonFile) src = json.load(jsonFile)
return src return src
@@ -29,5 +45,13 @@ class JsonManager:
pathToJsonFile: путь до json файла pathToJsonFile: путь до json файла
data: данные которые надо записать''' data: данные которые надо записать'''
schema = {
'pathToJsonFile': {'type': 'string'}
}
v = Validator(schema)
if not v.validate({'pathToJsonFile': pathToJsonFile}):
raise ValueError(v.errors)
with open(pathToJsonFile, 'w', encoding=self.encoding) as jsonFile: with open(pathToJsonFile, 'w', encoding=self.encoding) as jsonFile:
json.dump(data, jsonFile, indent=4, ensure_ascii=0) json.dump(data, jsonFile, indent=4, ensure_ascii=0)