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

Python导出JSON出现转义引号 如何正确格式化输出JSON文件

问题根源

你调用模型自带的.json()方法已经完成了一次JSON序列化,得到的是已经转义过的JSON字符串,后续再用json.dump()对这个字符串做二次序列化,就会把字符串内部的引号再次转义,才会出现大量\"这类无效转义字符。

解决方案

你可以根据需求任选以下一种方案,都可以解决转义问题,还可以直接输出格式化后的可读JSON结构,适配你深层嵌套模型的查看需求:

方案1:直接写入模型返回的JSON字符串

如果模型自带的.json()方法已经满足序列化需求,直接写入字符串即可,不需要再调用json模块的序列化方法:

derived_game = GameUnderstanding().derive_gamestates(game=game)
derived_json_str = derived_game.json()

with open('derived_game.json', 'w', encoding='utf-8') as outfile:
    outfile.write(derived_json_str)

方案2:直接序列化原始数据,自定义格式化规则

如果需要调整输出格式(比如缩进、保留中文、按键排序),可以先取模型的原始字典结构,再做一次序列化,适配你的数据查看需求:

derived_game = GameUnderstanding().derive_gamestates(game=game)
# 此处如果是pydantic类模型调用.dict()方法,其他模型按需调整为获取原始数据的对应方法
game_raw_data = derived_game.dict()

with open('derived_game.json', 'w', encoding='utf-8') as outfile:
    json.dump(
        game_raw_data,
        outfile,
        indent=2,  # 按2空格缩进分层,深层嵌套结构一目了然
        ensure_ascii=False,  # 保留中文等非ASCII字符不转义
        sort_keys=True  # 可选:按字段名排序输出,方便对比不同版本的数据差异
    )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:48:02