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
相关产品推荐
相关产品推荐

