使用psycopg2构建没有连接的查询

时间:2011-02-02 21:00:27

标签: python psycopg2 offline-mode

我有几次想在现场收集数据。在这种情况下,我并不总是可以访问我的postgres数据库。

为了保持同步,如果我可以离线使用psycopg2函数来生成可以阻止的查询并且一旦我能够连接到数据库,那将是非常好的。处理所有阻碍的事情。

我目前正在努力的一件事是psycopg2游标需要构建连接。

我的问题是:

有没有办法在没有活动连接对象的情况下使用游标来执行mogrify之类的操作?或者使用未连接到数据库的连接对象?然后我想暂时将mogrify结果写入文件,以便稍后处理。

2 个答案:

答案 0 :(得分:11)

这将是一种脆弱的方法,因为连接用于检测用于转义的一些参数(编码,符合标准的字符串等)。

您可以在参数上调用psycopg2.extensions.adapt(x).getquoted()“手动mogrify”,然后使用常规Python %运算符将它们合并到查询中。

目前发布的psycopg版本(最高2.3.2)可能会在None - >上失败但NULL转换。您可以手动转换这些值,也可以将适配器注册为无:您可以在this commit中看到。

答案 1 :(得分:0)

似乎将稍后要插入的数据存储在另一个结构中会更容易,也更通用。也许是一个csv文件。然后,当您连接时,您可以浏览该表,但如果需要,您也可以使用该CSV轻松完成其他任务。