gpt4 book ai didi

python - 从 Python 中的字典的所有级别中删除键

转载 作者:行者123 更新时间:2023-12-04 10:25:34 28 4
gpt4 key购买 nike

我有一个字典列表。每个字典都可以嵌套。我想递归地从每个 dics 中删除 key id 。 Fopr示例(注意我不知道级别的数量):

"files" : [ 
{
'id': 'ada21321',
'd': 'asdasdas',
'data': {
'd': 'asdasdas'
}
},
{
'id': 'ada23112341321',
'd': 'asdasdas',
'data': {
'd': 'asdasdas',
'id': 'asdasd21asda'
}
}
],

我不知道 dic 是如何嵌套的,以及 id 位于何处。我需要从所有级别的所有 dics 中删除 id。输出:

"files" : [ 
{
'd': 'asdasdas',
'data': {
'd': 'asdasdas'
}
},
{
'd': 'asdasdas',
'data': {
'd': 'asdasdas'
}
}
],

我知道如何在一个级别中删除:

for current_file in data["files"]:
current_file.pop('id', None)

是否有一种优雅的方式来实现它?

最佳答案

这应该为你做:

def remove_key(container, key):
if type(container) is dict:
if key in container:
del container[key]
for v in container.values():
remove_key(v, key)
if type(container) is list:
for v in container:
remove_key(v, key)

remove_key(data['files'], 'id')

输出:

{'files': [{'d': 'asdasdas', 'data': {'d': 'asdasdas'}}, {'d': 'asdasdas', 'data': {'d': 'asdasdas'}}]}

关于python - 从 Python 中的字典的所有级别中删除键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60643316/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com