You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Discord.py从用户名(如duviz#0)获取用户ID?

如何在discord.py中将用户名(如duviz#0)转换为用户ID

情况1:获取当前服务器内的成员ID

如果目标用户在机器人所在的服务器中,可直接用Guild.get_member_named()方法,传入完整的「用户名# discriminator」格式字符串,拿到成员对象后提取ID:

# 示例:从命令上下文获取服务器对象
member = ctx.guild.get_member_named("duviz#0")
if member:
    user_id = member.id
    print(f"用户ID:{user_id}")
else:
    print("该用户不在当前服务器中")

情况2:获取全局用户(好友或共享服务器用户)

Discord API限制机器人仅能获取自己好友或已加入服务器的用户信息。你可以先拆分用户名和 discriminator,再遍历客户端缓存的用户列表匹配:

# 拆分用户名和后缀数字
username, discrim = "duviz#0".split("#")
# 遍历缓存用户
for user in client.users:
    if user.name == username and user.discriminator == discrim:
        user_id = user.id
        print(f"用户ID:{user_id}")
        break
else:
    print("未找到该用户(可能不在好友列表或共享服务器中)")

注意事项

  • 机器人需要具备服务器成员相关权限,才能访问服务器成员列表。
  • 若目标用户不在机器人的任何服务器或好友列表中,无法通过discord.py直接获取其ID,这是Discord API的硬性限制。

内容的提问来源于stack exchange,提问作者Duviz 2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 16:05:16