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

Python中JSON/字典指定层级将key:pair转换为key=pair的问题

解决方法

你想要的是自定义格式的字符串输出,而非标准Python字典或JSON格式,所以json.loads、json.dumps这类处理标准格式的工具没法直接满足需求,得自己写逻辑控制输出格式。

步骤1:加载JSON文件

先把JSON文件转换成Python字典:

import json

# 替换成你的JSON文件路径
with open('your_input.json', 'r', encoding='utf-8') as f:
    data = json.load(f)

步骤2:自定义格式转换函数

写一个递归函数,只在指定层级(比如你需要的顶层)把key: value改成key = value,嵌套结构保持原格式:

def custom_format(data, target_level=0, current_level=0):
    parts = []
    if isinstance(data, dict):
        for key, value in data.items():
            # 处理键的字符串格式
            key_str = f"'{key}'"
            # 递归处理嵌套的字典/列表,字符串加引号
            if isinstance(value, (dict, list)):
                value_str = custom_format(value, target_level, current_level + 1)
            elif isinstance(value, str):
                value_str = f"'{value}'"
            else:
                value_str = str(value)
            
            # 判断当前层级,选择分隔符
            if current_level == target_level:
                parts.append(f"{key_str} = {value_str}")
            else:
                parts.append(f"{key_str}: {value_str}")
        
        # 添加缩进和换行,让格式更清晰
        indent = "    " * current_level
        inner_indent = "    " * (current_level + 1)
        return "{" + f"\n{inner_indent}" + f",\n{inner_indent}".join(parts) + f"\n{indent}" + "}"
    elif isinstance(data, list):
        items = []
        for item in data:
            items.append(custom_format(item, target_level, current_level + 1))
        
        indent = "    " * current_level
        inner_indent = "    " * (current_level + 1)
        return "[" + f"\n{inner_indent}" + f",\n{inner_indent}".join(items) + f"\n{indent}" + "]"
    else:
        return str(data)

步骤3:生成目标格式

调用函数处理数据,指定只修改顶层(target_level=0):

formatted_result = custom_format(data, target_level=0)
print(formatted_result)

运行后就能得到你想要的输出:顶层键值对用=分隔,嵌套的Applications内部结构保持原有的:格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 22:15:39