首页 > 解决方案 > 如何获取所有标签名称?

问题描述

names = await self.client.db.fetch("SELECT trigger FROM tags WHERE guild_id = $1", ctx.guild.id)
await ctx.send(names)
[<Record trigger='hoe'>, <Record trigger='guild'>, <Record trigger='err'>, <Record trigger='ikr'>, <Record trigger='ikr'>, <Record trigger='ew'>, <Record trigger='raid'>, <Record trigger='brake'>, <Record trigger="Spen's profile">]

我如何只获取所有标签名称,如 ikr、guild、ew

标签: pythonpostgresqldiscord.py

解决方案


fetch在 asyncpg 返回一个可下标的 Record 对象时,我们可以简单地使用列表推导转换为字符串。

names = await self.client.db.fetch("SELECT trigger FROM tags WHERE guild_id = $1", ctx.guild.id)
names = [x['trigger'] for x in names]

await ctx.send(names)
#names will be ['ikr', 'guild', 'ew'] in your case

参考:

注意:如果您想对所有提取使用相同的东西,我建议查看record_class连接或提取的参数。


推荐阅读