如果先执行查询,则只能从 read_sql 获取数据

Can only get data from read_sql if the query is executed first

我正在尝试使用 read_sql 和 SQLAlchemy 查询对象将数据读入 DataFrame。我得到零行 returned,即使数据库中有数据。此外,如果我 运行 与 query.all() 的查询,则 read_sql returns 数据。

举个具体的例子

query = session.query(SomeSqlAlchemyModel)
# query.all()  # If I uncomment this line, I get data back. Without it I get an empty DataFrame.
df = pd.read_sql(query.statement, session.connection())
assert not df.empty

我正在注销 SQL 语句,并且进入了 SQLAlchemy 代码,据我所知,在这两种情况下都执行了完全相同的查询。

如何在不先 运行ning query.all() 的情况下获取 read_sql 到 return 的数据?

我发现了问题 — 我正在使用同一个会话将数据插入数据库,但我还没有调用 flushquery.all() 语句为我隐式调用了 flush,首先保留数据。