【Python】将json字符串配置存储为.py配置文件

将json转换为config
json结构为:
在这里插入图片描述

import json


def convert_json_to_config(json_str):
    json_data = json.loads(json_str)

    config_dict = {}
    for key, value in json_data.items():
        keys = key.split(".")
        section = keys[0]
        option = ".".join(keys[1:])
        if len(keys) == 1:
            config_dict[section] = value
        else:
            if section not in config_dict:
                config_dict[section] = {}

            if "." in option:
                nested_section, nested_option = option.split(".", 1)
                if nested_section not in config_dict[section]:
                    config_dict[section][nested_section] = {}
                config_dict[section][nested_section][nested_option] = value
            else:
                config_dict[section][option] = value

    return config_dict

写入到文件

def write_config_to_file(config_dict, file_path):
    with open(file_path, "w") as file:
        for section, options in config_dict.items():
            file.write(f"{section} = {json.dumps(options, indent=4)}\n\n")

测试

if __name__ == "__main__":
    json_str = '{"config1":"value1","config2.subconfig1":"value2","config2.subconfig2.subconfig3":"value2", "config2.subconfig2.subconfig4":"value4","config3":"value5"}'

    config_dict = convert_json_to_config(json_str)

    write_config_to_file(config_dict, "config.py")

结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值