这实际上归结为诸如Can I assign values in RowProxy using the sqlalchemy?之类的问题,以及他们建议仅将结果强制转换为dict
的问题。
我想在结果行上分配值,并且我主要使用带有原始sql的SQLAlchemy,以提供出色的多RDBMS支持(也有一些自省功能)。
基本上,我的选择很多
results = connection.execute("select foo from bar where zoom = ?", binds)
results = [dict(row) for row in results]
但是如果我可以在启动连接时或在执行时指定一个不同的结果类,例如普通的旧dict
,那会更好。也许也更快,更方便。
我查看了https://docs.sqlalchemy.org/en/latest/core/engines.html和 sqlalchemy.engine.result 的来源,看起来_process_row
类上的ResultProxy
是{ {1}}被注册。但是我没有办法通过API进行修改。
与ORM使用相比,我意识到这是一个边缘情况,但是我不能在我的情况下使用ORM。如果不可能,那就完美了,就是不想忽略已经包含的内容。