【发布时间】:2019-09-06 21:26:21
【问题描述】:
我想创建一个函数来遍历包含列表的嵌套字典。对于每个与关键字匹配的值,该函数将其替换为另一个关键字。
函数是否返回另一个字典或是否更改主字典并不重要。
我试图将案例分开: - 如果数据是字典,做点什么 - 如果数据是一个列表,做别的东西
字典:
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')
【问题讨论】:
标签: python json python-3.x dictionary recursion