如何在Python中使用变量为JSON键分配值?



我试图使一个功能与不和机器人,它计算有多少命令已经运行,并将其存储在一个名为data.json的JSON文件。下面是代码:

import json
# Read 'data.json'
with open("data.json", "r") as d:
datar = json.load(d)
com = datar.get("commands-run")
# Functions
def command_increase():
commands_run = com + 1
dataw = open("data.json", "w")
dataw["commands-run"] = commands_run

JSON文件:

{
"commands-run": 0
}

这是我运行命令时得到的错误,它试图增加JSON文件中的值:

TypeError: '_io.TextIOWrapper' object does not support item assignment

最重要的是,它还完全擦除JSON文件。我的意思是,它清除了所有的东西。连括号

当您执行json.load时,它将您的json数据加载到字典中。您可以在此字典中增加命令计数器,并在末尾将字典重新写入json文件。

import json
# Read 'data.json'
with open("data.json", "r") as d:
datar = json.load(d)
com = datar.get("commands-run")
# Functions
def command_increase():
commands_run = com + 1
datar["commands-run"] = commands_run
with open("data.json", "w") as dataw:
dataw.write(json.dumps(datar, indent=4))
command_increase()

相关内容

  • 没有找到相关文章

最新更新