拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 以更有效的方式更新Json

以更有效的方式更新Json

白鹭 - 2022-01-26 2152 0 0
[
{"923390702359048212": 5},
{"462291477964259329": 1},
{"803390252265242634": 3},
{"824114065445486592": 2},
{"832041337968263178": 4}
]

这是我随机生成的用户 ID 串列和每个 ID 的一些示例编号。在这种情况下,我们可以将其称为视频游戏中一个赛季的进球数。当我尝试更新比赛结束时的进球数时,我必须采用一种迂回的方式,首先获取服务器中的所有成员 ID,然后将其与具有以下代码的资料进行比较。

amount = 0
for member in server:
    if member.id != server.member.id:
        amount = amount   1
    else:
        print(amount)
        print(str(member.id), str(server.member.id))
        print(jsondata[amount][str(server.member.id)])
        break
    
jsondata[amount][str(server.member.id) = jsondata[amount][str(server.member.id)]   1

有没有更好的方法来做我正在做的事情?我知道我最终会遇到问题,因为我不会在 json 上列出成员,直到他们得分,而且我觉得我在程序上浪费了大量时间,因为它检查了很多成员(我编辑了我的真实串列并制作了这个串列以使其更容易,因为没有人需要看到 50 多个条目才能获得这个想法)。在这方面,我仍然是初学者,所以请用简单的术语回答或留下指向我可以学习更复杂想法的地方的链接。谢谢

    def goalscored():
        amount = 0
        for member in server:
            if member.id != server.member.id:
                amount = amount   1
            else:
                print(amount)
                break
        with open('Goals.json','w') as f:
            jsondata = json.load(f)
            jsondata[amount][str(server.member.id) = jsondata[amount][str(server.member.id)]   1
            json.dump(jsondata,f)
    
    def firstgoal(server.member.id):
        with open('Goals.json','w') as f:
            jsondata = json.load(f)
            amount = 0
            goalscored = 1
            totalmembers = server.members.amount
            for member in server:
                if membed.id !=server.member.id:
                    amount = amount   1
                if amount == totalmembers:
                    NewScore = {user.id:goalscored}
                    json.dump(NewScore,f)

我正在使用的代码

uj5u.com热心网友回复:

不知道为什么你不能更早地让它作业,但将它存盘为 dict 会容易得多。

# file.json
{
 "923390702359048212": 5,
 "462291477964259329": 1,
 "803390252265242634": 3,
 "824114065445486592": 2,
 "832041337968263178": 4
}

def goalscored():
    with open("Goals.json", "r") as f:
        jsondata = json.load(f)
        # Make sure your id is not int but str
        if server.member.id not in jsondata:  # first goal case
            jsondata[server.member.id] = 0
        jsondata[server.member.id]  = 1

    with open("Goals.json", "w") as f:
        json.dump(jsondata, f)
标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *