问题标签 [psycopg2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
598 浏览

psycopg2 - psycopg2 与 sys.stdin.read()

我有如下小代码:

当我运行它时,我得到了

我尝试用“v_num = sys.stdin.read()”替换“v_num = '1'”

但是当我运行它时,我只得到了这个:

请给我您对如何解决它的启示

真挚地

-比诺-

0 投票
1 回答
8697 浏览

python - 直接在 Python 中重新创建 Postgres COPY?

我有一个数据块,目前是一个 n 元组列表,但格式非常灵活,我想附加到 Postgres 表中 - 在这种情况下,每个 n 元组对应于数据库中的一行。

到目前为止,我一直在做的是将这些全部写入 CSV 文件,然后使用 postgres 的 COPY 将所有这些批量加载到数据库中。这可行,但不是最理想的,我希望能够直接从 python 完成这一切。python中是否有一种方法可以在Postgres中复制COPY类型的批量加载?

0 投票
9 回答
42115 浏览

python - 检查python下是否存在postgresql表(可能还有Psycopg2)

如何使用 Psycopg2 Python 库确定表是否存在?我想要一个真或假的布尔值。

0 投票
2 回答
2014 浏览

sql - Postgresql 查询具有相同命名表的两个不同数据库

问候,通过使用 python 的 psycopg2 库,我目前可以连接到数据库并检索如下:

现在在名为“db1”的数据库旁边,我必须从另一个包含相同表的 ip 查询另一个数据库,附加查询,即

我怎样才能做到这一点?

0 投票
4 回答
1115 浏览

django - 在雪豹上安装 PostgreSQL 和 pyscopg2

我仍然是 Web 开发领域的初学者,我正在尝试设置 Django 环境。我正在阅读“django 权威指南”来开始我的练习。

我在 Macbook 2.1GHz 上运行 Snow Leopard (10.6.2)。它与 Python 2.6.1 一起提供。由于 Snow Leopard cam 预装了 Python 2.6.1,所以我没有做任何额外的设置。也许它需要更多设置,请告诉我。但是我已经运行了它,并且可以正常工作。

我直接从书中安装了 django。我已经运行了它,到目前为止它可以工作。

数据库配置是让我窒息的配置。

我尝试使用 MySQLdb 模块为 python 安装 MySQL,但它与 32 位和 64 位架构之间的差异有复杂性(mysql 有 64 位,python 有 32 位,反之亦然;无论哪种方式,我都想不通)。我已经阅读了很多论坛并修改了几个小时,仍然无法修复它,我只是放弃了。

所以我尝试了下一个最好的方法(或者我认为),让我们尝试设置 Postgre。所以,我去了 Postgre 官方网站,选择了 Mac OS X 分期付款包。我下载它,解压它,它只有一个“.app”安装程序和一个“README”。我运行了安装程序,等等等等,我按照说明进行操作,它做到了,它做到了。最后,显然 Postgre 已安装。

我不确定它是否已安装,所以我在互联网上搜索了一些答案。好吧,我找到了安装Django for Mac的官方文档,但是安装Postgre的步骤完全不同。也许“.app”安装程序完成了这些步骤中列出的大部分配置,我不知道。

然后我去终端并输入:

(检查我刚刚安装的 Postgre 版本)

(运行数据库)

找不到“psql”或“pg_ctl”命令。对我来说,这有点像是说没有安装 Postgre,或者我还需要做一些设置。

所以我开始研究从 Django 给出的指令安装 Postgre 的第一步(上面的链接)。从它说编辑'〜/ .profile'的指令中,即使在取消隐藏所有文件和目录之后,我仍然无法在我的用户目录下找到它。

在这一点上,我只是有点沮丧,不知道该去哪里。我想知道我是否可以得到一些方向/提示/howto/anythingreallyatthispoint。

在运行 Postgre 之前,我无法真正安装 psycopg2,但从外观上看,安装它看起来并没有那么糟糕(或者我希望如此)。

非常感谢您的帮助^_^

-三

0 投票
2 回答
3675 浏览

python - 如何为时间戳(日期时间)数组指定 psycopg2 参数

我想使用 psycopg2 在 Python 中运行 PostgreSQL 查询,它按类型的列进行过滤timestamp without timezone。我有一长串允许的时间戳(而不是范围)值列表,并且 psycopg2 可以方便地处理数组,所以我认为这应该可以工作:

times参数是datetime对象列表。我也试过了psycopg2.Timestamp()。它们都转换为WHERE thetimestamp = ANY (ARRAY['2009-07-06T00:00:00', '2009-07-07T00:00:00', ...])并且不幸的是失败并出现以下错误:

我也在 pgAdmin 中确认了这一点,所以它不仅仅是 psycopg2。似乎正在发生的事情是 Postgres 不会将字符串数组隐式转换为时间戳数组。如果我显式添加到 pgAdmin 中的每个元素,它将很好地转换单个字符串并且数组工作正常::timestamp,但我不知道如何在 psycopg2 中做到这一点。

除了忘记 DB-API 参数并手动构建一长串时间戳之外,最好的方法是什么?有什么办法可以让它转换为正确的类型?

0 投票
2 回答
601 浏览

django - 在 Django/Postgresql 中调试活锁

我在 Django 上使用 Apache2、mod_python 和 PostgreSQL 8.3 以及 postgresql_psycopg2 数据库后端运行一个中等流行的 Web 应用程序。我偶尔会遇到活锁,当 apache2 进程在几分钟或更长时间内持续消耗 99% 的 CPU 时可识别。

我在 apache2 进程上做了一个 strace -p pid,发现它不断重复这些系统调用:

这个确切的片段在跟踪中不断重复,并且在我最终杀死 apache2 进程之前运行了 10 多分钟。(注意:我对此进行了编辑,以用一个显示完整字符串内容而不是截断的新片段替换我以前的 strace 片段。)

我对上述内容的解释是,django 正在尝试对我的表 account_profile 进行存在检查,但在更早的时候(在我开始跟踪之前)出现了问题(SQL 解析错误?引用完整性或唯一性约束违规?谁知道? ),现在 Postgresql 返回错误“当前事务已中止”。出于某种原因,它没有引发异常并放弃,而是不断重试。

一种可能性是这是在调用 Profile.objects.get_or_create 时触发的。这是映射到 account_profile 表的模型类。也许 get_or_create 中有一些东西旨在捕获过于广泛的异常并重试?从 Web 服务器日志来看,这种活锁可能是由于双击我网站注册表单中的 POST 按钮而发生的。

在过去的几天里,这种情况在现场已经发生了几次,在我干预之前导致速度显着放缓,所以除了无限死锁之外,几乎任何事情都会有所改善!:)

0 投票
3 回答
2696 浏览

python - 在 pyscopg2 中取消查询执行

如何使用 pyscopg2(python Postgres 驱动程序)取消执行查询语句?

例如,假设我有以下代码:

然后我想取消从另一个线程执行那个长时间运行的查询 - 我必须在连接/光标对象上调用什么方法才能做到这一点?

0 投票
1 回答
4105 浏览

django - 我应该在 Django 的 DATABASE_ENGINE 中使用哪个 Postgres 值?

这是我第一次在 Django 中使用 PostgreSQL 8.4.2(我过去一直使用 MySQL 或 sqlite3)。DATABASE_ENGINE我应该为insettings.py或使用postgresql_psycopg2哪个值postgresql?它们彼此有何不同?

0 投票
12 回答
31470 浏览

python - 使用 psycopg2 为 Postgres 转义 SQL“LIKE”值

psycopg2 是否具有转义Postgres的LIKE操作数的值的功能?

例如,我可能想匹配以字符串“20% of all”开头的字符串,所以我想写这样的东西:

我可以在这里插入一个现有的escape_sql_like函数吗?

(与如何明确引用字符串值(Python DB API/Psycopg2)类似的问题,但我在那里找不到答案。)