问题标签 [asyncpg]

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 投票
2 回答
3778 浏览

python - 异步PG。将记录转换为 JSON 的正确方法是什么

我有一些方法负责通过 id 从某个表中获取数据。此数据采用字符串格式。我需要将它们转换为 json。

在使用 asyncpg 的情况下,将数据从字符串转换为 json 的正确方法是什么?我将不胜感激。

0 投票
1 回答
1563 浏览

python - asyncpg SELECT WHERE IN 给出 postgresSyntaxError

在我使用 asyncpg 的 python 代码中,我将一个元组 ('PENDING',) 传递到 where-in 查询中,该查询记录为:

似乎sql查询最终应该是

但上面的代码导致:

我认为这可能是因为元组中的尾随逗号,但我不知道如何摆脱它..

0 投票
1 回答
2471 浏览

python-3.x - 不和谐机器人——IndexError:列表索引超出范围

我编写了一个不和谐的机器人,当用户对消息下的表情符号做出反应时,它会给他们一个角色。(反应角色)

如果我使用命令 !reactadd 创建一个反应角色,那么机器人会保存它,我可以使用命令 !reactremove 再次删除数据库中的条目。

但是,如果用户对消息下的表情符号做出反应,则用户不会获得角色。

相反,我收到以下错误消息:

第 34、52 和 62 行也存在同样的问题。机器人找不到数据库条目。我不知道为什么。

完整的源代码:

0 投票
1 回答
1561 浏览

python - 在 Python Gino 中获取池连接(异步)

我正在使用带有asyncio++ (ORM-ish)+ asyncpg(路由、网络响应)的 Postgres、Python3.7。ginoaiohttp

users我在我的数据库中创建了一个小型 postgres 表testdb并插入了一行:

我正在尝试设置我的数据库,以便在请求进入时可以在路由中使用 ORM。

输出是:

这很奇怪。“显式”代码本质上是SELECT针对数据库运行的,这是无用的。

我在文档中找不到一种方法来 1) 使用 ORM,以及 2) 明确地检查池中的连接。

我的问题:

  1. 是否await User.query.gino.all()检查池中的连接?它是如何发布的?
  2. 我将如何在事务中包装查询?我很不安,因为我无法明确控制何时/何地从池中获取连接,以及如何释放它。

我基本上喜欢test_engine_explicit()与 Gino 一起工作的风格的明确性,但也许我只是不理解 Gino ORM 的工作原理。

0 投票
1 回答
516 浏览

python - sqalchemy 更新 bindparam 主键

以下代码抛出“sqlalchemy.exc.CompileError:未使用的列名:_id”。

db数据库的一个实例。Database. 请注意,我必须使用名称“_id”,因为 SQLalchemy 说“id”是保留的。

除了单独更新每一行之外,还有其他解决方案吗?

0 投票
1 回答
239 浏览

psql - psql bluk插入不同长度的数组列

没有数组数据的unnest工作正常。我想插入一个数组列。我的输入是这样的:[[1, 2], [1]]

失败的错误是:

unnest_2d_1d来自Unnest 数组的一级 虽然所有这些函数都不能支持不同长度的数组。

array_dims 发生了另一个相同的错误:

我需要做什么unnest_2d_1d才能使失败的人成功?

为什么我必须使用 unnest。因为asyncpg execute_many丢弃返回值。所以我需要使用一个 sql 来插入数据。但是数组列就像一个具有不同长度的暗淡。

---- 添加一些python和asyncpg

我发现了一个与此问题相关的 github 问题, https://github.com/brianc/node-postgres/issues/1644尝试使用 python

当尝试这个:

明白啦

0 投票
1 回答
1073 浏览

python-3.x - 使用 asyncpg 读取 PostgreSQL 表

我知道如何使用 psycopg2、sqlalchemy、dask 在远程服务器中读取 PostgreSQL 表,但我对读取表的处理时间不满意,并开始研究更快的替代方案,我发现 asyncpg 比所有方法快 7 倍,但 asyncpg 的文档非常差与上面提到的库相比,那里有很多例子。

我的问题是:如何有效地读取 PostgreSQL 表?

我试过如下:

使用上面的代码,我得到 PostgreSQL 表中每列的所有行值,但不显示列名,它显示列编号而不是它们的专有名称。如何纠正这个?

0 投票
2 回答
438 浏览

python - 从 sqlalchemy 中定义的表中获取 CREATE 查询字符串

我有一个使用 asyncpg 连接数据库的异步 python 应用程序,我想避免手动输入每个查询。我发现 sqlalchemy 核心对此非常有帮助,但我在一件事上苦苦挣扎。我希望我的应用程序能够在启动时创建数据库模式,而不是依赖于已经创建的数据库模式,而且我还没有找到这样做的自动方法。我想要的是这样的:

这里的问题是,sqlalchemy 期望metadata绑定到一个引擎,但它不支持异步引擎。所以我只想从声明的表中获取一个 CREATE 查询字符串并将其传递给我的连接以执行。

与此类似的可能是people.select()它不会立即执行,它只是创建一个对象,该对象也有一个字符串表示,即要执行的查询。

我可以将 sql 模式放在一个单独的文件中并在启动时加载它,但是每次更改模式时感觉都不对,我需要在代码中的两个位置进行更改。有什么建议么?

0 投票
0 回答
812 浏览

python - 从大表中获取时,asyncpg.Cursor.fetch() 非常慢

所以最初我使用了一种非常低效的方法来从数据库表中获取结果,我认为游标会更快更高效。

问题是,for loop需要永远完成,我想这是因为await cur.fetch()非常慢我的表有大约 7-8 百万条记录

0 投票
1 回答
818 浏览

python - 从 Python 程序中创建 PostgreSQL 角色/用户

您知道是否可以从 Python 代码中为 Postgresql 数据库创建角色/用户?

我更喜欢使用asyncpg库,因为我的程序是基于异步代码的,但是如果有更好的库来完成这个特定的任务,我不介意使用它们。

我的服务器机器上已经预装了一个数据库,因此另一种可能性是只运行 Python 程序中的 Shell 命令来创建角色。但是,我不确定您是否可以仅在一个 Shell 行中创建角色。