databases 连接 pg 查询时返回的数据类型

databases 连接 pg 查询时返回的数据类型020.10.6使用 databases 做异步查询的时候,sqlite、mysql 查询结果返回的都是元组类型,但是连接 pg 数据库的时候返回的是 Record 对象实例。database = Database( 'postgresql://postgres:password@192.168.111.136:54321/postgres', min_size=5, max_size=20)await databas
摘要由CSDN通过智能技术生成

databases 连接 pg 查询时返回的数据类型

020.10.6

使用 databases 做异步查询的时候,sqlite、mysql 查询结果返回的都是元组类型,但是连接 pg 数据库的时候返回的是 Record 对象实例。

database = Database(
    'postgresql://postgres:password@192.168.111.136:54321/postgres', 
    min_size=5, 
    max_size=20
)
await database.connect()
query = "SELECT score, name, id FROM HighScores"
rows = await database.fetch_all(query=query)  # 查询
print(rows)  # 打印结果
await database.disconnect()

输出:

[<databases.backends.postgres.Record object at 0x000001BADB1E2A08>]

乍看就觉得麻烦了,毕竟连接不同的数据库时查询会返回不同的结果,大大降低了代码的灵活性,还要引入 if 做类型判断。

但是点进 databases 源码可以看到 Record 的代码:

# database/backends/postgres.py

class Record(Mapping):
    def __init__(
        self, row: asyncpg.Record, result_columns: tuple, dialect: Dialect
    ) -
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值