【发布时间】:2020-09-18 13:57:09
【问题描述】:
我认为从 JSON 嵌套字典中删除一个键很简单,但我最终得到了错误。
我有如下所示的 JSON 文件,并想从其元素 "Codes" 中删除一个键 "8888"。
dummy.json:
{
"Codes": {
"8888": "code1|18888",
"9999": "code2|19999",
"7777": "code3|17777"
},
"Names": {
"Site1": "Site1|18888",
"Site2": "Site2|19999",
"Site3": "Site3|17777"
}
}
Python 代码:
import json
with open('dummy.json') as json_data:
data = json.load(json_data)
for element in data["Codes"]:
#del element['8888']
element.pop('8888', None)
with open('dummy.json'), 'w') as outfile:
json.dump(data, outfile)
结果:
第一次尝试,我尝试了del element['8888'],它抛出了TypeError: 'str' object does not support item deletion
根据示例找到here,我尝试使用element.pop('8888', None) 并抛出AttributeError: 'str' object has no attribute 'pop' 错误。
我不知道我做错了什么,请帮忙。
【问题讨论】:
-
...您是否再次保存数据?你好像没有。
-
@Tomalak,感谢您的回复,我添加了下一段代码以再次将数据写入 JSON 文件,但我认为这没有必要,因为我的代码在弹出/删除元素级别失败。 . 如果我误解了你的问题,请澄清。
-
读取文件后你有什么样的数据结构?重点是,您的问题与 JSON 无关,而是与使用该数据结构有关!