我想创建一个函数,用于遍历包含列表的嵌套字典。对于每个与关键字匹配的值,该函数将其替换为另一个关键字。
函数返回另一个字典或更改主字典都不重要。
我试图分离情况: - 如果数据是字典,则执行某些操作 - 如果数据是列表,则执行其他操作
字典:
data_dict = {
"name": "AAAAAA",
"content": "BBBBBB",
"dat": [
{
"author": {
"name": "CCCCCC",
"surname": "DDDDDD",
},
"title": "FFFFFF",
"color": 15258703,
"fields": [
{
"name": "GGGGGG",
"value": "HHHHHH",
},
{
"name": "IIIIII",
"value": "JJJJJJ",
}
],
"thumbnail": {
"url": "KKKKKK"
},
"image": {
"url": "LLLLLL"
},
"footer": {
"text": "MMMMMMM",
"icon_url": "NNNNNN"
}
}
]
}
现在我只是尝试更改每个值,以查看是否可以正常迭代。
我可以打印出所有值已更改的data_dict
,但无法在字典中进行管理...
def recursive_replace_valuer(data, match, repl):
if isinstance(data, list):
for l in data:
recursive_replace_valuer(l, match, repl)
if isinstance(l, dict):
recursive_replace_valuer(l, match, repl)
elif isinstance(data, dict):
for k,v in data.items():
recursive_replace_valuer(v, match, repl)
data[k] = '______'
print(data)
recursive_replace_valuer(data_dict, 'a','a')
set
呢? - Basil Musaelif isinstance(data, set): return {replace(i, match, repl) for i in data}
- blhsingdata[k] = repl
所做的就是将新值分配给现有键,因此我不明白它如何可能改变字典的大小以产生该错误。 - blhsing