我有几次想在现场收集数据。在这种情况下,我并不总是可以访问我的postgres数据库。
为了保持同步,如果我可以离线使用psycopg2函数来生成可以阻止的查询并且一旦我能够连接到数据库,那将是非常好的。处理所有阻碍的事情。
我目前正在努力的一件事是psycopg2游标需要构建连接。
我的问题是:
有没有办法在没有活动连接对象的情况下使用游标来执行mogrify之类的操作?或者使用未连接到数据库的连接对象?然后我想暂时将mogrify结果写入文件,以便稍后处理。
答案 0 :(得分:11)
这将是一种脆弱的方法,因为连接用于检测用于转义的一些参数(编码,符合标准的字符串等)。
您可以在参数上调用psycopg2.extensions.adapt(x).getquoted()
“手动mogrify”,然后使用常规Python %
运算符将它们合并到查询中。
目前发布的psycopg版本(最高2.3.2)可能会在None
- >上失败但NULL
转换。您可以手动转换这些值,也可以将适配器注册为无:您可以在this commit中看到。
答案 1 :(得分:0)
似乎将稍后要插入的数据存储在另一个结构中会更容易,也更通用。也许是一个csv文件。然后,当您连接时,您可以浏览该表,但如果需要,您也可以使用该CSV轻松完成其他任务。