我试图使一个功能与不和机器人,它计算有多少命令已经运行,并将其存储在一个名为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()