gpt4 book ai didi

python - sqlalchemy+sqlite 去除带点的列名?

转载 作者:太空宇宙 更新时间:2023-11-03 19:19:13 26 4
gpt4 key购买 nike

我正在使用 SQLAlchemy 0.7.6。我将列别名为:

column = table.c["name"].label("foo.bar")

并且 SQLite 仅使用“bar”作为结果字段别名。有什么解决办法吗?

示例代码:

create_table("sqlite:////tmp/test.sqlite", schema)

engine = create_engine(url)
metadata = MetaData(engine, reflect=True)
table = Table("test_table", metadata, schema=schema, autoload=True)

column = table.c["name"].label("foo.bar")
cursor = sql.expression.select([column])
row = cursor.execute().fetchone()

print "keys are: %s" % (row.keys(), )

将打印:

keys are: [u'bar']

而不是:

keys are: [u'foo.bar']

适用于 postgres。

这是完整的测试代码:https://gist.github.com/2506388

我已经向 sqlalchemy 列表报告了这一问题,但同时我想知道是否有其他人遇到类似的问题并且可能有解决方法。

最佳答案

将使用引擎选项在 SQLAlchemy 中进行修补。请参阅mailing list thread了解更多信息。

同时,解决方法是:

# select is sqlalchemy.sql.expression.select() 
# each selected column was derived as column = table.c[reference].label(label_with_dot)

labels = [c.name for c in select.columns]
...
record = dict(zip(labels, row))

补丁后的解决方案是:

conn = engine.connect().execution_options(sqlite_raw_colnames=True)
result = conn.execute(stmt)

关于python - sqlalchemy+sqlite 去除带点的列名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10345910/

26 4 0
文章推荐: html -
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com