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

Discord.PY多服务器机器人自定义欢迎消息占位符格式化方法

解决方案

从JSON文件读取的字符串属于普通文本字符串,Python不会自动解析其中的{}占位符,只有代码中显式声明的f-string才会在编译阶段处理变量插值,因此需要主动调用字符串格式化方法完成替换。

直接可用的修改代码

# 读取原欢迎消息
raw_msg = welcomem[str(member.guild.id)]
# 格式化占位符,传入member对象即可匹配所有member开头的属性占位符
formatted_msg = raw_msg.format(member=member)
# 发送格式化后的消息
channel.send(formatted_msg)

扩展说明

  • 如果后续要新增其他类型的占位符,比如要加独立的服务器属性占位符{guild.created_at},只需要在format方法里增加对应的参数即可:
    formatted_msg = raw_msg.format(member=member, guild=member.guild)
    
  • 安全注意:如果你的欢迎消息配置权限开放给非信任用户,需要额外做占位符白名单校验,避免恶意用户通过{member.__class__}这类魔法属性访问敏感数据,只需提前把消息里的占位符提取出来和允许的白名单(比如member.mention、member.guild.name等)比对即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:36:03