使用 python 2.6、pandas 和 SqlAlchemy 连接到 SQLite——不可能完成的任务?

connecting to SQLite with python 2.6, pandas and SqlAlhemy — mission impossibe?

我正在尝试在我学校的机器集群上部署地理空间联合脚本。不幸的是,他们有 python 2.6(Cloudera 的标准),我必须相应地重新编写代码。

读取 pandas.from_sql() 需要建立 SQLAlchemy 连接。但是,他们提出的方式在 python 2.6 中不起作用:

engine = create_engine('sqlite:///%s' % path)

with engine.connect() as conn, conn.begin():
    chunks = pd.read_sql_table('tweets', conn, columns=columns, chunksize=50)

不过,python 2.6好像不喜欢'with'的说法,也不喜欢'with ... as ... , ... :'。所以我不得不稍微修改一下代码:

conn = engine.connect()
conn.begin()
chunks = pd.read_sql_table('tweets', conn, columns=columns, chunksize=50)
conn.close()

然而,这又给我带来了另一个错误,一个很奇怪的错误:

 raise NotImplementedError("read_sql_table only supported for "
NotImplementedError: read_sql_table only supported for SQLAlchemy connectable.

我该如何解决这个问题?

你不能像这样嵌套上下文管理器吗:

with engine.connect() as conn:
    with conn.begin():
        chunks = ...

在 2.7 中为多个上下文管理器添加了语法,是的,但您始终可以在 2.6 中解决它。