Discord.py信息存储

2024-05-12 21:04:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经发出了踢和禁止命令,现在我正在研究静音命令。我没有任何问题,但是我想将信息存储在json文件中。例如,当我使某人静音时,他的名字将存储在json文件中,因此脚本可以读取这个名字以仅为他激活静音命令。。。请帮我解决这个问题

这也是我的代码

@client.command(name="kick")
async def kickcommand(ctx, member: discord.Member, *, reason=None):
    guild = ctx.guild
    
    mbed = discord.Embed(
        title = f"Kicked {member}",
        description = f"{member} has been kicked from the server because {reason} ... Bye Bye :)"
    )
    if ctx.author.guild_permissions.ban_members:
        await ctx.send(embed=mbed)
        await guild.kick(member)

Tags: 文件命令信息json静音await名字member
3条回答

所以如果我做对了。。。这就是我要做的吗

@client.command(name="kick")
async def kickcommand(ctx, member: discord.Member, *, reason=None):
    guild = ctx.guild
    
    mbed = discord.Embed(
        title = f"Kicked {member}",
        description = f"{member} has been kicked from the server because {reason} ... Bye Bye :)"
    )
    if ctx.author.guild_permissions.ban_members:
        await ctx.send(embed=mbed)
        await guild.kick(member)


        class myJsonDataClass:
            def __init__(name, time, action):
                self.Name = name
                self.Time = time
                self.Action = action
        banData = myJsonDataClass(str(member), "Monday", "kicked")

        myJsonString = json.dumps(banData.__dict__)

        print(myJsonString)


        with open("userData.json","r") as input:
            existingData = json.load(input)

        if existingData == None:
            existingData = {}

        existingData.update(banData.__dict__)

        with open("userData.json","w") as output:
            json.dump(existingData,output)

这应该让你开始:

import json

class myJsonDataClass:
  def __init__(self, name, time, action):
    self.Name = name
    self.Time = time
    self.Action = action



banData = myJsonDataClass("John", "Monday", "kicked")

myJsonString = json.dumps(banData.__dict__)

print(myJsonString)

例如,这将打印{"Name": "John", "Time": "Monday", "Action": "kicked"},您可以将其保存到json文件中

当然,然后根据罗兰的回答,你可以做如下的事情:

import json

with open("userData.json","r") as input:
    existingData = json.load(input)

if existingData == None:
    existingData = {}

existingData.update(banData.__dict__)

with open("userData.json","w") as output:
    json.dump(existingData,output)

相关问题 更多 >