You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何高效将Python字典列表指定键值对转换为JSON文件?

高效提取JSON字典列表中特定键值并保存的正确姿势

嘿,我太懂你手动拼接JSON字符串的痛苦了——不仅容易写错格式,还会出现键值对变成字符串的尴尬问题,其实用Python的json模块就能轻松搞定,完全不用自己拼字符串,效率还高!

核心思路

咱们直接和Python原生的数据结构(列表+字典)打交道,而不是操作字符串:

  1. json.load()把JSON文件转成Python能直接操作的列表字典
  2. 遍历提取每个字典里你需要的键值,生成新的列表字典
  3. json.dump()把新数据直接转成标准JSON写入文件

完整代码示例

import json

# 读取原始JSON文件,转成Python列表字典
with open("your_input.json", "r", encoding="utf-8") as input_file:
    original_data = json.load(input_file)

# 定义你要提取的目标键,替换成你的实际需求
wanted_keys = ["target_key_1", "target_key_2"]

# 提取特定键值对,生成新数据(这里用列表推导式更简洁)
filtered_data = [
    {key: item[key] for key in wanted_keys if key in item}
    for item in original_data
]

# 写入新JSON文件,保证格式正确
with open("your_output.json", "w", encoding="utf-8") as output_file:
    # ensure_ascii=False保留非ASCII字符,indent=4让JSON更易读
    json.dump(filtered_data, output_file, ensure_ascii=False, indent=4)

为什么你的旧方法会出问题?

手动拼接字符串时,你其实是把键和值都当成字符串来处理了,比如可能写了类似'"key": "value"'的片段,但这样生成的内容本质上是字符串的堆砌,不是json模块认可的原生数据结构。而json.load()json.dump()会自动处理Python类型和JSON类型的映射(比如Python的字典→JSON对象,字符串→JSON字符串),生成的绝对是标准的JSON格式,不会出现键值对变成字符串的情况。

额外小提示

  • 如果原始字典里可能没有你要的键,if key in item能帮你避免KeyError,非常实用
  • indent=4可以让输出的JSON排版更美观,方便后期查看;如果追求文件体积最小,可以去掉这个参数
  • ensure_ascii=False一定要加,不然中文等非ASCII字符会被转成Unicode编码,可读性很差

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

火山引擎 最新活动