Python 循环遍历所有嵌套的字典值,并修改符合条件的值

Python 循环遍历所有嵌套的字典值,并修改符合条件的值,python,Python,我正在制作基于正则表达式的搜索引擎 例如,如果查询匹配(?p\d+@\d+,那么我想运行查询{“表”:“记录”,“过滤器”:{“文件名”:“*filename”}。但在此之前,我想用say替换“*filename”2786@20150510201045". 因此,基本上我想循环一个嵌套字典,并用相应的正则表达式命名组中的值替换以*开头的任何内容。我找到的最接近的结果是您最好添加一个预期结果 def myprint(d, groups): new_d = {} for k, v

我正在制作基于正则表达式的搜索引擎

例如,如果查询匹配
(?p\d+@\d+
,那么我想运行查询
{“表”:“记录”,“过滤器”:{“文件名”:“*filename”}
。但在此之前,我想用say替换“*filename”2786@20150510201045".


因此,基本上我想循环一个嵌套字典,并用相应的正则表达式命名组中的值替换以*开头的任何内容。我找到的最接近的结果是

您最好添加一个预期结果
def myprint(d, groups):
    new_d = {}
    for k, v in d.items():
        if isinstance(v, dict):
            new_d[k] = myprint(v, groups)
        elif isinstance(v, str):
            new_d[k] = groups[v[1:]] if v.startswith('*') else v
        else:
            new_d[k] = v
    return new_d