You need to enable JavaScript to run this app. Python读取JSON文件后如何转换为静态常量格式字符串
优惠活动
大模型
产品
解决方案
定价
更多

Python读取JSON文件后如何转换为静态常量格式字符串

JSON转常量语句的实现方案

弃用手动split的解析方式

你现在手动按冒号分割字符串的写法容错性极差,只要JSON字段值中包含冒号、转义字符,或是后续结构升级出现嵌套字段,分割结果就会完全错乱。Python内置的json标准库可以直接把文件内容解析成结构化字典,不需要手动拆解文本。

明确常量名转换规则

结合你给出的映射示例,可以整理出固定的转换逻辑:

  • 无缩写的普通字段直接转全大写形式,比如email对应EMAIL、title对应TITLE、type4对应TYPE4
  • 含缩写的字段需要先替换缩写片段为对应全词,再统一拼接成大写下划线格式:
    • 片段cont替换为CONTACT,拆分后的cont_pic(cont+pic)替换后即可得到CONTACT_PIC
    • 片段cd替换为CODE,拆分后的user_cd(user+cd)替换后即可得到USER_CODE

完整可运行代码

import json

# 维护缩写和标准常量名片段的映射关系
abbr_map = {
    "cont": "CONTACT",
    "cd": "CODE"
}

filename = "file.json"
# 读取并结构化解析JSON
with open(filename, encoding="utf-8") as f:
    json_content = json.load(f)

result = []
for raw_key in json_content.keys():
    # 把原键按下划线拆分为独立片段
    key_fragments = raw_key.split("_")
    processed_fragments = []
    for fragment in key_fragments:
        # 命中缩写映射则使用标准值,否则直接转大写
        processed = abbr_map.get(fragment, fragment.upper())
        processed_fragments.append(processed)
    const_name = "_".join(processed_fragments)
    # 按要求格式拼接语句
    result.append(f"public static {const_name} = '{raw_key}';")

# 输出结果,可按需替换为写入文件的逻辑
print("\n".join(result))

效果校验

针对你给出的示例JSON,运行上述代码后的输出和预期完全匹配:

public static EMAIL = 'email';
public static CONTACT_PIC = 'cont_pic';
public static TITLE = 'title';
public static USER_CODE = 'user_cd';
public static TYPE4 = 'type4';

内容的提问来源于stack exchange,提问作者B.Cos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.23 19:54:04