小编Bas*_*aar的帖子

Python递归替换嵌套字典的键中的字符?

我正在尝试创建一个泛型函数来替换嵌套字典的键中的点.我有一个非泛型函数,深入3级,但必须有一种方法来做这个泛型.任何帮助表示赞赏!我的代码到目前为止:

output = {'key1': {'key2': 'value2', 'key3': {'key4 with a .': 'value4', 'key5 with a .': 'value5'}}} 

def print_dict(d):
    new = {}
    for key,value in d.items():
        new[key.replace(".", "-")] = {}
        if isinstance(value, dict):
            for key2, value2 in value.items():
                new[key][key2] = {}
                if isinstance(value2, dict):
                    for key3, value3 in value2.items():
                        new[key][key2][key3.replace(".", "-")] = value3
                else:
                    new[key][key2.replace(".", "-")] = value2
        else:
            new[key] = value
    return new

print print_dict(output)
Run Code Online (Sandbox Code Playgroud)

更新:回答我自己的问题,我使用json object_hooks做了一个解决方案:

import json

def remove_dots(obj):
    for key in obj.keys():
        new_key = key.replace(".","-")
        if …
Run Code Online (Sandbox Code Playgroud)

python dictionary replace nested character

25
推荐指数
4
解决办法
2万
查看次数

标签 统计

character ×1

dictionary ×1

nested ×1

python ×1

replace ×1