【问题标题】:how to make a copy of an sqlalchemy object (data only)如何制作 sqlalchemy 对象的副本(仅限数据)
【发布时间】:2018-10-28 00:25:44
【问题描述】:

我得到一个 db 记录作为 sqlalchemy 对象,我需要在一些计算过程中查阅原始值,所以我需要原始记录直到最后。但是,当前的代码会在运行时修改对象,目前我不想对其进行过多的重构。

如何复制原始数据?正如预期的那样,deepcopy 似乎造成了问题。我绝对不喜欢手动复制所有字段,因为有人会在修改 db 对象时忘记更新此代码。

【问题讨论】:

    标签: python python-2.7 sqlalchemy copy


    【解决方案1】:

    你可以在这里有很多选项来复制你的对象。我能想到的其中两个是:

    • 使用__dict__ 将给出原始sqlalchemy 对象的字典,您可以使用.keys() 函数遍历所有属性,该函数将给出所有属性。
    • 您还可以使用inspect 模块和getmembers() 来获取定义的所有属性,并使用setattr() 方法设置所需的属性。

    【讨论】:

    • 谢谢。 sqlalchemy 对象的内部结构比一堆属性更复杂,所以使用 dict 不像使用简单的类那么简单。将调查检查
    猜你喜欢
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    • 2011-02-26
    • 1970-01-01
    相关资源
    最近更新 更多