Skh*_*haz 1 python recursion null dictionary
我有一个复杂的dict数组,它有一些作为字符串“NULL”的值,我想删除,我的 dict 看起来像这样:
d = [{
"key1": "value1",
"key2": {
"key3": "value3",
"key4": "NULL",
"z": {
"z1": "NULL",
"z2": "zzz",
},
},
"key5": "NULL"
}, {
"KEY": "NULL",
"AAA": "BBB",
}]
Run Code Online (Sandbox Code Playgroud)
我想清除所有值为NULL 的键
像这样:
[{"key1": "value1", "key2": {"key3": "value3", "z": {"z2": "zzz"}}}, {"AAA": "BBB"}]
我使用的是 Python 3.9,因此可以使用 walrus 运算符。
以下是使用递归执行此操作的方法:
def remove_null(d):
if isinstance(d, list):
for i in d:
remove_null(i)
elif isinstance(d, dict):
for k, v in d.copy().items():
if v == 'NULL':
d.pop(k)
else:
remove_null(v)
d = [{
"key1": "value1",
"key2": {
"key3": "value3",
"key4": "NULL",
"z": {
"z1": "NULL",
"z2": "zzz",
},
},
"key5": "NULL"
}, {
"KEY": "NULL",
"AAA": "BBB",
}]
remove_null(d)
print(d)
Run Code Online (Sandbox Code Playgroud)
输出:
[{"key1": "value1", "key2": {"key3": "value3", "z": {"z2": "zzz"}}}, {"AAA": "BBB"}]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
151 次 |
最近记录: |