使用 python3 删除列表中的 JSON 字符串



我正在尝试从字典中删除 {'settings': 'Val'},其中列表中的某些 JSON 部分,我能够使用 var['a']['b'][2] 删除,但我想通过循环访问"b"来删除"设置">

我有什么方法可以删除"设置"。

var = {
'a': {
'b': [
{
'check': 'val'
},
{
'alerts': 'val'
},
{
'settings': 'val'
}
]
}
}
for items in var['a']['b']:
del items['settings']
Traceback (most recent call last):
File "/Users/sree/PycharmProjects/test/app1.py", line 59, in <module>
del items['settings']
KeyError: 'settings
## tried this and getting the same error
for items in var['a']['b']:
items.pop('settings')
print(var)
Traceback (most recent call last):
File "/Users/sree/PycharmProjects/test/app1.py", line 70, in <module>
items.pop('settings')
KeyError: 'settings'

您可以使用列表推导式过滤掉字典:

var = {
'a': {
'b': [
{
'check': 'val'
},
{
'alerts': 'val'
},
{
'settings': 'val'
}
]
}
}

var['a']['b'] = [val for val in var['a']['b'] if 'settings' not in val]
import json
print(json.dumps(var, indent=4))

打印:

{
"a": {
"b": [
{
"check": "val"
},
{
"alerts": "val"
}
]
}
}

最新更新