【发布时间】:2019-10-17 04:13:29
【问题描述】:
我希望能够检查 json 文件是否具有我要查找的顶级键并删除该嵌套字典。
Json 文件:
{
"One": {
"action": "One",
"delay": 1559243024.3665395,
"seconds": 0,
"score": 0,
"delta": 1559183024.3665395,
"grace_sec": 60000
},
"Two": {
"action": "Two",
"delay": 1559321009.969849,
"seconds": 0,
"score": 14,
"delta": 1559261009.969849,
"grace_sec": 60000
},
"Three": {
"action": "Three",
"delay": 1559909745.5981774,
"seconds": 0,
"score": 0,
"delta": 1559309745.5981774,
"grace_sec": 600000
},
"Four": {
"action": "Four",
"delay": 1559909757.0363235,
"seconds": 0,
"score": 1,
"delta": 1559309757.0363235,
"grace_sec": 600000
}
}
这是我尝试过但没有奏效的方法:
if name == child.text:
...
with open("streak.json", "r+") as f:
data = json.load(f)
for x in data:
if name in x:
del x[name]
with open("streak.json", "w") as file:
data = json.dump(data, file)
例如,如果 name == "Two",那么 Two 的所有键值对都将被删除,包括 Two 本身。
【问题讨论】:
-
所以你想删除
"Two": { "action": "Two", "delay": 1559321009.969849, "seconds": 0, "score": 14, "delta": 1559261009.969849, "grace_sec": 60000 },? -
不是两个,我想删除,而是程序说的任何字典 == child.text。我只是以两个为例。