помошью чего можно привести к такой структуре
class MyClass(тут я не против от чего-то наследоваться):
reporter_name = КакойТоКласс(source=‘reporter.user.name’)
чтобы у меня на выходе был плоский объект?
Самому, что-то писать с переопределением __new__ или meta, что-то не хочется. Было бы здорово, что-то известное использовать.
Немного апну свой вопрос, может кто-то подскажет)
Пидантик
Но он не умеет вложенные данные так доставать
Такое как мне нужно есть у drf serializers, но что-то отдельное найти не могу. И прям не хочется самописное городить) Хочется, чтобы кто-то другой поддерживал, а я пользовался)
marshmallow/pydantic/dataclass_factory Или я тебя не понял и... Тогда конкретизируй вопрос плз)
https://github.com/Infinidat/munch
Так, вроде, так конкретизироваи и пример добавил) к примеру pydantic умеет делать alias, но значение возьмет из текущего объекта, а вот из вложенного не умеет.
Это не то. Тут создаются вложенные объекты, а мне нужно сделать плоский объект
Возможно, вам поможет jsonpickle или небольшое описание своего JSONEncoder: https://pynative.com/python-convert-json-data-into-custom-python-object/ Ещё что-такое ищется: https://stackoverflow.com/questions/6578986/how-to-convert-json-data-into-a-python-object
Это тоже не то. Я хочу получть, что-то плоское, без вложенности по факту хочу привести {‘reporter’: {‘user’: {‘name’: ‘reporter_name’}}} в {‘reporter_name’: ‘reporter_name’} просто указав путь до нужного ключа reporter_name = ‘reporter.user.name’
Довольно близка (в итоге получается не объект) к этому функция из pandas json_normalize: https://pandas.pydata.org/docs/reference/api/pandas.json_normalize.html
Немного жирновато для этого ставить пандас) Хочется, что-то маленькое
Скопипастить кусок
Вот ещё что-то нашлось: https://github.com/funnel-io/json-normalize
Ну там тоже кусок совсем не соответствует моим хотелкам
Тут ключи не задаются, а собираются из существующих, даже не знаю где такое может понадобиться. Конечно можно попробовать так преобразовать, а потом это скормить в пайдантик. Тут надо обдумать
Звучит похоже на https://dataclass-factory.readthedocs.io/en/latest/extended.html#structure-flattening
Да, чёрт побери! Это оно! Правда описывать долго. Спасибо)
Обсуждают сегодня