Встречается на собеседованиях • сегодня

Как реализовать использование объектов после десериализации

При десериализации JSON в Python (например, через json.loads()), данные преобразуются в стандартные типы: dict, list, str и т.д. Чтобы работать с ними как с объектами, есть несколько подходов:

  1. Ручное преобразование:
python
import json

data = '{"name": "Alice", "age": 30}'
dict_data = json.loads(data)

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

person = Person(**dict_data)

text

2. **Использование `dataclasses` (Python 3.7+)**:
```python
from dataclasses import dataclass
import json

@dataclass
class Person:
    name: str
    age: int

data = '{"name": "Bob", "age": 25}'
person = Person(**json.loads(data))
  1. Кастомный декодер:
python
import json

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

def person_decoder(dct):
    if 'name' in dct and 'age' in dct:
        return Person(dct['name'], dct['age'])
    return dct

data = '{"name": "Charlie", "age": 35}'
person = json.loads(data, object_hook=person_decoder)

Для сложных случаев можно использовать библиотеки типа marshmallow или pydantic, которые предоставляют более продвинутые возможности валидации и сериализации/десериализации.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы