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

Discord.py 如何通过指令为JSON数据库内所有用户发放货币

批量获取用户对象实现余额发放方案

场景1:用户数据存储在本地JSON文件

  • 先读取全量用户数据到内存,批量修改后回写文件即可:
import json

# 读取所有用户数据
with open("user_data.json", "r", encoding="utf-8") as f:
    all_users = json.load(f)

# 遍历所有用户ID加100余额
for user_id in all_users:
    all_users[user_id]["wallet"] += 100

# 保存修改后的数据
with open("user_data.json", "w", encoding="utf-8") as f:
    json.dump(all_users, f, indent=2, ensure_ascii=False)

场景2:用户数据存储在关系型数据库(SQLite/MySQL通用逻辑)

  • 无需先查询全量用户,直接执行SQL更新语句效率更高:
import sqlite3

db_conn = sqlite3.connect("your_database.db")
cursor = db_conn.cursor()
# 单条语句完成全量用户余额更新
cursor.execute("UPDATE users SET wallet = wallet + 100")
db_conn.commit()
db_conn.close()

场景3:基于Discord.py等机器人框架的用户缓存

  • 直接遍历服务器成员列表操作即可:
# guild为你要发放福利的目标服务器对象
for member in guild.members:
    # 对接你自己的存储逻辑更新余额
    user_wallet = get_user_wallet(member.id)
    update_user_wallet(member.id, user_wallet + 100)

小提示:如果用户量级超过1万,建议分批分页处理,避免一次性加载全量数据导致内存溢出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 01:15:10