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

求助:无法将字典对象正确写入为JSON文件的技术问题

解决Python中字典对象无法正确写入JSON文件的问题

我看你正在处理一段JSON数据的提取、转换和写入工作,遇到了字典没法正确写入JSON文件的问题。先把你给出的原始JSON数据贴出来方便参考:

{ 
  "metadata": { "info": "important info" }, 
  "timestamp": "2018-04-06T12:19:38.611Z", 
  "content": { 
    "id": "1", 
    "name": "name test", 
    "objects": [ 
      { 
        "id": "1", 
        "url": "http://example.com", 
        "properties": [ 
          { "id": "1", "value": "1" } 
        ] 
      } 
    ] 
  } 
}

结合你的需求(提取数值、转换后写入新JSON),大概率是你直接尝试把Python字典对象写入文件,而没有用JSON序列化工具,或者忽略了一些关键的写入参数。下面给你一个完整的可运行代码示例,包含从读取到写入的全流程:

import json

def process_json(input_file, output_file):
    # 第一步:读取并解析原始JSON文件
    with open(input_file, 'r', encoding='utf-8') as f:
        raw_data = json.load(f)
    
    # 第二步:提取需要的数值并转换(这里以把properties里的value从字符串转整数为例)
    target_value = raw_data['content']['objects'][0]['properties'][0]['value']
    converted_value = int(target_value)  # 完成字符串到整数的转换
    
    # 第三步:构造你需要的新JSON结构(可根据实际需求调整)
    processed_data = {
        "source_timestamp": raw_data['timestamp'],
        "content_summary": {
            "object_id": raw_data['content']['objects'][0]['id'],
            "converted_property_value": converted_value
        },
        "metadata_info": raw_data['metadata']['info']
    }
    
    # 第四步:将字典写入为JSON文件(这一步是关键,别直接用file.write()写字典)
    with open(output_file, 'w', encoding='utf-8') as f:
        # ensure_ascii=False 保证非ASCII字符正常保存,indent=4 让JSON格式更易读
        json.dump(processed_data, f, ensure_ascii=False, indent=4)

# 替换成你的实际文件路径
process_json("input.json", "output.json")

这里要注意几个关键的点,也是容易踩坑的地方:

  • 绝对不能直接用file.write(字典对象),因为字典是Python的内置对象,不是JSON字符串,必须用json.dump()(直接写入文件)或者json.dumps()(先转成字符串再写入)来完成序列化。
  • 指定encoding='utf-8'可以避免写入时出现乱码问题,尤其是处理包含中文或特殊字符的内容时。
  • ensure_ascii=False参数很实用,它会让JSON里的非ASCII字符直接保存,而不是被转义成\uXXXX的形式。
  • indent=4是可选的,但加上后生成的JSON文件会有缩进,可读性大大提升。

如果你的代码里还有其他特殊情况(比如要处理不可序列化的Python类型,比如datetime对象),可以再补充自定义的JSON编码器,但从你给出的场景来看,上面的代码应该能解决你的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:34:35