python - 如何在 discord.py 中遍历所有成员及其角色
问题描述
async def interest(self):
channel = self.client.get_channel(779743465252192297)
em = discord.Embed(title ="Interest By time : ",color = discord.Colour.random())
total = 0
for members in discord.Guild.members:
try:
em.add_field(name = "Member Name: ",value = members.name)
for keys,values in role.items():
if keys in members.roles.name:
em.add_field(name=f"{keys} : " ,value = values)
total += values
em.add_field(name = "Total : " ,value = total )
em.set_footer(text = "Type `.role_shop` to See how you can spend Money",icon_url=channel.guild.owner.avatar_url)
await members.send(embed = em)
except:
pass
这是我的代码,我想遍历所有成员,然后遍历他们的角色并为 var total 添加一个值。这是我的角色字典:role = {"Coder":100,"Gamer":100,"Anime Weeb":100,"Superior Coder":150,"Mods":100,"Partners":50,"Owner":999999}
我收到的错误是: File "d:\bot1\fold\onevent.py", line 33, in interest for members in discord.Guild.members: TypeError: 'property' object is not iterable
请提供一种我可以执行任务的方法
解决方案
不能discord.Guild.members
直接使用。您需要一个discord.Guild
对象实例。您可以使用client.get_guild(id)
. 此外,member.roles
返回一个列表。所以你不能使用member.roles.name
. 您也必须遍历角色,或者您可以在一行中进行循环,但您必须稍微更改代码以获得更优化的代码。
async def interest(self):
roles = {"Coder": 100, "Gamer": 100, "Anime Weeb": 100, "Superior Coder": 150, "Mods": 100, "Partners": 50,
"Owner": 999999}
channel = self.client.get_channel(779743465252192297)
guild = self.client.get_guild(<guild id>)
em = discord.Embed(title="Interest By time : ", color=discord.Colour.random())
total = 0
for members in guild.members:
try:
em.add_field(name="Member Name: ", value=members.name)
for role in [role for role in members.roles if role.name in roles.keys()]:
em.add_field(name=f"{role} : ", value=roles[role])
total += roles[role]
em.add_field(name="Total : ", value=total)
em.set_footer(text="Type `.role_shop` to See how you can spend Money",
icon_url=channel.guild.owner.avatar_url)
await members.send(embed=em)
except:
pass
推荐阅读
- vim - 无法在树莓派中安装 vim 插件(vundle)
- mysql - 我将从 SQL 中获得一些数字,但想将其打印为其他数字
- r - 在同一时刻选择具有最大缺失值数的几列
- bash - 使用 find 命令复制结果条目
- swift - 如何在 Swift 中获取屏幕中某个像素的 RGBA 值?
- android - 我为 Android Studio 购买了多少 GB RAM?
- php - 更改 ajax 成功的谷歌地图中心
- javascript - 导航选项在 React Native 中不起作用
- json - 将 JSON url 图像解析为 Scrollview - Unity
- angular - 角度打字稿自定义命名空间