我认为从JSON嵌套的dict中删除一个键很简单,但最终还是出现了错误。
我有如下所示的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'
错误
我不确定我犯了什么错误,请帮忙
试试这个:
在
for element in data["Codes"]
循环中,元素将是data["Codes"]
字典的键。所以,如果打印data["Codes"]
的所有元素,结果如下你不需要循环。如果您想删除(或弹出)某些
data["Codes"]
键,只需这样做在
data["Codes"]
上迭代时,element
将是data["Codes"]
字典的键,它是一个字符串,没有pop
函数(只能应用于dict)请尝试:
相关问题 更多 >
编程相关推荐