【发布时间】:2022-01-23 14:08:12
【问题描述】:
想法:
应该加载一个 JSON 文件,并删除对象 2-uID 及其子项。编辑后的内容应该保存在同一个 JSON 文件中。
问题:
我已经尝试了几种方法,例如this one from an SO user,但还没有对我有用。
显示的代码不会删除任何内容,而是将内容全部推送到一行中。
当前代码
Python代码:
import json
with open("path/to/json") as data_file:
data = json.load(data_file)
for element in data:
if '2-uID' in element:
del element['2-uID']
with open("path/to/json", 'w') as data_file:
data = json.dump(data, data_file)
JSON 文件:
{
"uID": {
"1-uID": {
"username": "1-username",
"pinned": true
},
"2-uID": {
"username": "2-username",
"pinned": false
},
"3-uID": {
"username": "3-username",
"pinned": false
}
}
}
这是处理后 JSON 文件的样子:
{
"uID": {
"1-uID": {
"username": "1-username",
"pinned": true
},
"3-uID": {
"username": "3-username",
"pinned": false
}
}
}
【问题讨论】:
-
一旦一个 JSON 格式的数据被 python 读取,它被存储为一个字典/列表的列表。对于您的情况,您可以使用
pop()删除特定密钥。见stackoverflow.com/questions/11277432/…。您的示例仅删除密钥的副本,而不是从实际的字典/列表列表中删除。
标签: python json python-3.x file