You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何替换字典值中的所有占位符实例?

解决Python字典/JSON中占位符替换的几种实用方法

方法一:递归遍历处理(支持嵌套结构)

这个方法能处理任意嵌套的字典、列表,同时兼顾字典的键和值里的占位符,是最通用的方案:

def replace_placeholders(obj, env):
    # 处理列表
    if isinstance(obj, list):
        return [replace_placeholders(item, env) for item in obj]
    # 处理字典
    elif isinstance(obj, dict):
        new_dict = {}
        for key, value in obj.items():
            # 替换键里的占位符
            new_key = key.replace("{env}", env)
            # 递归替换值里的占位符
            new_dict[new_key] = replace_placeholders(value, env)
        return new_dict
    # 处理字符串
    elif isinstance(obj, str):
        return obj.replace("{env}", env)
    # 其他类型(数字、布尔等)直接返回
    else:
        return obj

# 测试示例
my_dct = {
    "pipeline": "Test Pipeline",
    "environment": "dev",
    "test": {
        "{env}_test2": {
            "test3": ["{env}_test4", "{env}_test5"]
        }
    }
}

print(replace_placeholders(my_dct, "dev"))

运行后会得到预期结果,函数会递归遍历所有嵌套结构,不管是字典的键、字典的值还是列表元素,只要是字符串就替换占位符,其他类型原样保留。

方法二:读取JSON文件时直接替换(简单快速)

如果你的字典是从JSON文件读取的,可以先把文件内容读成字符串,批量替换占位符后再转成字典,步骤更简洁:

import json

def load_json_with_replace(file_path, env):
    with open(file_path, 'r', encoding='utf-8') as f:
        # 先读成字符串替换占位符
        json_str = f.read().replace("{env}", env)
        # 再转成字典
        return json.loads(json_str)

# 使用示例(假设你的JSON文件叫config.json)
# result = load_json_with_replace("config.json", "dev")
# print(result)

这个方法代码少、速度快,但要注意:如果JSON内容里有和占位符格式完全一样的普通字符串(比如某个值就是"{env}"),会被误替换,适合确定占位符只出现在需要替换位置的场景。

方法三:字符串格式化(仅适合值的替换,不支持键)

如果只有字典的值里有占位符,键里没有,还可以用字符串格式化的方式,仅作场景补充:

def format_dict_values(obj, env):
    if isinstance(obj, list):
        return [format_dict_values(item, env) for item in obj]
    elif isinstance(obj, dict):
        return {k: format_dict_values(v, env) for k, v in obj.items()}
    elif isinstance(obj, str):
        return obj.format(env=env)
    else:
        return obj

这个方法用str.format()规范替换,但缺点是处理不了字典键里的占位符,需根据场景选择。

内容的提问来源于stack exchange,提问作者Aaron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.02 02:47:30