如果先执行查询,则只能从 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 的数据?
我发现了问题 — 我正在使用同一个会话将数据插入数据库,但我还没有调用 flush
。 query.all()
语句为我隐式调用了 flush
,首先保留数据。
我正在尝试使用 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 的数据?
我发现了问题 — 我正在使用同一个会话将数据插入数据库,但我还没有调用 flush
。 query.all()
语句为我隐式调用了 flush
,首先保留数据。