В настоящее время я вручную создаю классы данных для каждой структуры JSON, что утомительно и подвержено ошибкам, особенно когда JSON имеет несколько уровней вложенности. Например:
Код: Выделить всё
{
"user": {
"id": 12345,
"personal_info": {
"name": "John Doe",
"email": "john@example.com",
"contact": {
"phone": "9876543210",
"address": "123 Main St"
}
},
"preferences": {
"language": "en",
"notifications": true
}
}
}
Код: Выделить всё
@dataclass
class Contact:
phone: str
address: str
@dataclass
class PersonalInfo:
name: str
email: str
contact: Contact
@dataclass
class Preferences:
language: str
notifications: bool
@dataclass
class User:
id: int
personal_info: PersonalInfo
preferences: Preferences
- Использование json.loads() дает мне dicts, но я теряю безопасность типов и автозаполнение IDE
- Написание классов данных вручную работает, но отнимает много времени для больших структур JSON
- Рассмотрено pydantic, но для этого все равно требуется определение схемы вручную
[*]Рекурсивно обрабатывает вложенные объекты
[*]Выводит правильные типы (int, str, bool, list и т. д.)
[*]Генерирует готовый к импорту код Python
[*]Может запускаться как инструмент CLI или использоваться программно
Что я ищу
[*]
[*]
[*]
[*]