Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from dataclasses import dataclass
- from dataclass_factory import Factory, Schema
- from typing import List, Generic, TypeVar
- T = TypeVar('T')
- @dataclass
- class Camera:
- id: int
- error: int
- title: str
- @dataclass
- class ListResult(Generic[T]):
- result: List[T]
- class CameraSchema(Schema):
- def pre_parse(self, data: dict):
- cam = {
- 'id': data['id'],
- 'error': data['error'][0]['code'],
- 'title': data['title']
- }
- return cam
- def create_factory():
- return Factory(
- schemas={
- Camera: CameraSchema(),
- },
- default_schema=Schema(
- omit_default=True,
- ),
- )
- if __name__ == "__main__":
- result = {'result': [
- {'error': [{'code': 80, 'outdated_at': 1635822494333, 'occurred_at': 1635821433000}], 'contract_bindings': [],
- 'title': 'ул. 8 Марта, д. 2, подъезд 2, обзор/фиксация лиц', 'ip_address': '172.26.253.148', 'id': 144036},
- {'error': [{'code': 80, 'outdated_at': 1635822494333, 'occurred_at': 1635821433000}], 'contract_bindings': [],
- 'title': 'ул. 8 Марта, д. 2, подъезд 2, обзор/фиксация лиц', 'ip_address': '172.26.253.148', 'id': 144036},
- ]}
- factory = create_factory()
- cam = result['result'][0]
- print(factory.load(result, ListResult[Camera]))
Add Comment
Please, Sign In to add comment