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

使用Python导出Discord用户到JSON遇Snowflake类型键错误

解决方法

错误原因

TypeError的问题根源在于你用Member.id(Snowflake对象)作为字典的键,而JSON序列化仅支持字符串、数字、布尔值或None这类基础数据类型,无法识别自定义的Snowflake对象。同时你还需要过滤掉bot用户,并调整输出格式以匹配需求。

修改后的代码

import interactions
from interactions import Button, ButtonStyle, SelectMenu, SelectOption, ActionRow, spread_to_rows
import json

memberslist = await guild.get_all_members()
# 过滤非bot用户,转换ID为字符串,按要求格式整理数据
membersdict = {
    str(member.id): {"Username": member.user.username}
    for member in memberslist
    if member.user.bot is None
}
with open("playersbackup.json", "w") as n:
    json.dump(membersdict, n, indent=4)

关键修改点

  • 将Member.id转为字符串:str(member.id),确保JSON能正常识别字典的键
  • 添加过滤条件:if member.user.bot is None,只保留非bot用户
  • 调整值的结构:从直接存储Member对象改为仅保留包含用户名的子字典,完全匹配你需要的JSON格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 12:10:45