Python加载JSON后输出文本时保留字符串值双引号的方法问询
实现方案
你可以借助json.dumps和itertools.product实现更优雅、鲁棒性更强的逻辑,不需要手动判断值类型,还能自动处理字符串转义场景,后续新增参数也不需要修改循环结构:
完整代码示例
import json from itertools import product def load_json(json_file): with open(json_file, encoding="utf-8") as f: data = json.load(f) return data def generate_output(data): keys = list(data.keys()) value_lists = [data[k] for k in keys] output_lines = [] # 自动生成所有参数组合的笛卡尔积 for combo in product(*value_lists): parts = [] for k, v in zip(keys, combo): # json.dumps会自动按照JSON规范输出:数字无引号、字符串自动带双引号 v_str = json.dumps(v) parts.append(f"{k}={v_str}") line = ";".join(parts) + ";" output_lines.append(line) return output_lines if __name__ == "__main__": config_data = load_json("你的配置文件路径.json") result_lines = generate_output(config_data) # 写入输出文件 with open("output.txt", "w", encoding="utf-8") as f: f.write("\n".join(result_lines))
方案优势
- 无需手动判断值类型,
json.dumps会自动适配不同类型的输出格式,遇到字符串内的双引号、换行符等特殊字符也会自动转义,避免手动拼接导致的格式错误 - 使用
itertools.product生成参数组合,不管配置里有多少个参数,都不需要写多层嵌套循环,后续新增参数只需要修改JSON配置即可,代码无需调整,扩展性极强 - 完全匹配你要求的JSON原生格式输出规则
内容的提问来源于stack exchange,提问作者heresthebuzz
相关产品推荐
相关产品推荐

