12

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

为了使事情保持同步,如果我可以离线使用 psycopg2 函数来生成可以保留的查询,并且一旦我能够连接到数据库,那就太好了;处理所有被阻止的东西。

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

我的问题是:

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

4

2 回答 2

15

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

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

当前发布的 psycopg 版本(最高 2.3.2)可能会在None->NULL转换时失败。您可以手动转换这些值,也可以为 None 注册一个适配器:您可以在这个 commit中看到如何。

于 2011-02-03T12:26:09.693 回答
0

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

于 2011-02-02T23:03:32.053 回答