SQLAlchemy排序列集合

2024-06-02 09:10:06 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在SQLAlchemy中对ColumnCollection排序

我用这种方式得到一个列列表

listCols = MyTable.__table__.columns

现在我想按列名对列进行排序,但我真的不想因为转换为OrderedDict而失去column类


Tags: columns列表sqlalchemy排序方式mytabletablecolumn
2条回答

@snakecharmerb您的解决方案在1.3版中运行良好,尽管ColumnCollection随着SQLAlchemy 1.4的最新发布而发生了变化

炼金术<;1.4

ColumnCollection(*sorted(columns, key=lambda c: c.name))

SQLAlchemy>;=1.4

ColumnCollection(columns=[sorted(columns, key=lambda c: c.name)])

注意:我还没有在2.x上进行测试,但我猜它希望与1.4中的相同

listCols = MyTable.__table__.columns

返回不可排序的ImmutableColumnCollection

但是,您可以使用它创建具有所需顺序的新ColumnCollection

from sqlalchemy import sql

new_list_cols = sql.expression.ColumnCollection(*sorted(listCols, key=lambda x: x.name))

相关问题 更多 >