问题标签 [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.
python - 异步PG。将记录转换为 JSON 的正确方法是什么
我有一些方法负责通过 id 从某个表中获取数据。此数据采用字符串格式。我需要将它们转换为 json。
在使用 asyncpg 的情况下,将数据从字符串转换为 json 的正确方法是什么?我将不胜感激。
python - asyncpg SELECT WHERE IN 给出 postgresSyntaxError
在我使用 asyncpg 的 python 代码中,我将一个元组 ('PENDING',) 传递到 where-in 查询中,该查询记录为:
似乎sql查询最终应该是
但上面的代码导致:
我认为这可能是因为元组中的尾随逗号,但我不知道如何摆脱它..
python-3.x - 不和谐机器人——IndexError:列表索引超出范围
我编写了一个不和谐的机器人,当用户对消息下的表情符号做出反应时,它会给他们一个角色。(反应角色)
如果我使用命令 !reactadd 创建一个反应角色,那么机器人会保存它,我可以使用命令 !reactremove 再次删除数据库中的条目。
但是,如果用户对消息下的表情符号做出反应,则用户不会获得角色。
相反,我收到以下错误消息:
第 34、52 和 62 行也存在同样的问题。机器人找不到数据库条目。我不知道为什么。
完整的源代码:
python - 在 Python Gino 中获取池连接(异步)
我正在使用带有asyncio
++ (ORM-ish)+ asyncpg
(路由、网络响应)的 Postgres、Python3.7。gino
aiohttp
users
我在我的数据库中创建了一个小型 postgres 表testdb
并插入了一行:
我正在尝试设置我的数据库,以便在请求进入时可以在路由中使用 ORM。
输出是:
这很奇怪。“显式”代码本质上是SELECT
针对数据库运行的,这是无用的。
我在文档中找不到一种方法来 1) 使用 ORM,以及 2) 明确地检查池中的连接。
我的问题:
- 是否
await User.query.gino.all()
检查池中的连接?它是如何发布的? - 我将如何在事务中包装查询?我很不安,因为我无法明确控制何时/何地从池中获取连接,以及如何释放它。
我基本上喜欢test_engine_explicit()
与 Gino 一起工作的风格的明确性,但也许我只是不理解 Gino ORM 的工作原理。
python - sqalchemy 更新 bindparam 主键
以下代码抛出“sqlalchemy.exc.CompileError:未使用的列名:_id”。
db
是数据库的一个实例。Database
. 请注意,我必须使用名称“_id”,因为 SQLalchemy 说“id”是保留的。
除了单独更新每一行之外,还有其他解决方案吗?
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
当尝试这个:
明白啦
python-3.x - 使用 asyncpg 读取 PostgreSQL 表
我知道如何使用 psycopg2、sqlalchemy、dask 在远程服务器中读取 PostgreSQL 表,但我对读取表的处理时间不满意,并开始研究更快的替代方案,我发现 asyncpg 比所有方法快 7 倍,但 asyncpg 的文档非常差与上面提到的库相比,那里有很多例子。
我的问题是:如何有效地读取 PostgreSQL 表?
我试过如下:
使用上面的代码,我得到 PostgreSQL 表中每列的所有行值,但不显示列名,它显示列编号而不是它们的专有名称。如何纠正这个?
python - 从 sqlalchemy 中定义的表中获取 CREATE 查询字符串
我有一个使用 asyncpg 连接数据库的异步 python 应用程序,我想避免手动输入每个查询。我发现 sqlalchemy 核心对此非常有帮助,但我在一件事上苦苦挣扎。我希望我的应用程序能够在启动时创建数据库模式,而不是依赖于已经创建的数据库模式,而且我还没有找到这样做的自动方法。我想要的是这样的:
这里的问题是,sqlalchemy 期望metadata
绑定到一个引擎,但它不支持异步引擎。所以我只想从声明的表中获取一个 CREATE 查询字符串并将其传递给我的连接以执行。
与此类似的可能是people.select()
它不会立即执行,它只是创建一个对象,该对象也有一个字符串表示,即要执行的查询。
我可以将 sql 模式放在一个单独的文件中并在启动时加载它,但是每次更改模式时感觉都不对,我需要在代码中的两个位置进行更改。有什么建议么?
python - 从大表中获取时,asyncpg.Cursor.fetch() 非常慢
所以最初我使用了一种非常低效的方法来从数据库表中获取结果,我认为游标会更快更高效。
问题是,for loop
需要永远完成,我想这是因为await cur.fetch()
非常慢我的表有大约 7-8 百万条记录
python - 从 Python 程序中创建 PostgreSQL 角色/用户
您知道是否可以从 Python 代码中为 Postgresql 数据库创建角色/用户?
我更喜欢使用asyncpg
库,因为我的程序是基于异步代码的,但是如果有更好的库来完成这个特定的任务,我不介意使用它们。
我的服务器机器上已经预装了一个数据库,因此另一种可能性是只运行 Python 程序中的 Shell 命令来创建角色。但是,我不确定您是否可以仅在一个 Shell 行中创建角色。