Код: Выделить всё
from typing import Any, List, Optional, Literal
from pydantic import BaseModel
from pydantic_core import from_json
class Check1UnitValidator(BaseModel):
field_name: str
restricted_values: List[str]
action: Literal["Reject", "Underreview", "NA"]
class Check1Validator(BaseModel):
check1_units: Any #List[Check1UnitValidator]
with open('BRE/utils/check1.json', 'r') as f:
data = f.read()
check1 = Check1Validator(from_json(data))
print(check1)
Ошибка:
check1 = Check1Validator(from_json(data))
TypeError: init() принимает 1 позиционный аргумент, но задано 2
файла json:
Код: Выделить всё
{
"check1_units": [
{
"field_name": "pincode",
"restricted_values": [
"123456",
"456789"
],
"action": "Reject"
}
]
}
Я не знаю, что делаю неправильно? почему init принимает 2 аргумента?
Я просто передаю только 1 аргумент, я не могу уловить, что не так. Он должен работать нормально, моя версия Python — 3.8.12, а версия pydantic — 2.7.
Я пробовал без использования файла json и с использованием dict, он работает, но что в этом плохого?
Подробнее здесь: https://stackoverflow.com/questions/784 ... n-pydantic