как сделать копию объекта sqlalchemy (только данные) - PullRequest
0 голосов
/ 17 мая 2018

Я получаю запись БД в качестве объекта sqlalchemy, и мне нужно обратиться к исходным значениям во время некоторого процесса вычисления, поэтому мне нужна исходная запись до конца. Тем не менее, текущий код изменяет объект по мере его поступления, и я не хочу в настоящее время слишком много его реорганизовывать.

Как я могу сделать копию оригинальных данных? deepcopy, кажется, создает проблему, как и ожидалось. Я определенно предпочитаю не копировать все поля вручную, так как кто-то забудет обновить этот код при изменении объекта db.

1 Ответ

0 голосов
/ 17 мая 2018

У вас может быть много вариантов для копирования вашего объекта. Два из них, о которых я могу подумать:

  • Используя __dict__, вы получите словарь исходного объекта sqlalchemy, и вы можетеПереберите все атрибуты, используя функцию .keys(), которая выдаст все атрибуты.
  • Вы также можете использовать модуль inspect и getmembers(), чтобы получить все определенные атрибуты и установить необходимые атрибуты, используя setattr()Метод.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...