Python提取JSON数据中的键值对并保存为.csv文件

  本文介绍基于Python ,读取JSON 文件数据,并将JSON 文件中指定的键值对数据 转换为.csv格式文件的方法。

  在之前的文章Python提取JSON文件中的指定数据并保存在CSV或Excel表格文件内https://blog.csdn.net/zhebushibiaoshifu/article/details/132572161)中,我们就介绍过将**JSON** 文件数据保存到.csv格式或.xlsx格式的表格文件中的方法;而本文我们将针对不同的待提取数据特征,给出另一种方法。

  首先,我们来明确一下具体的需求。我们现有一个JSON 文件数据,是一个包含多个JSON 对象的列表,如下图所示;其中,我们希望将text中的内容提取出来------text中的数据都是以键值对 的形式存储的,我们希望的是,将键值对 作为.csv格式文件的列名 ,而 则是这一列对应的值 ;因为这个JSON 数据中包含很多个text(每一个text中的所有 都是一样的,但是 不完全一致),所以我们最后就会得到一个具有很多行的.csv格式文件。

  明确了需求,我们就可以开始代码的撰写。本文所用代码如下。

python 复制代码
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Fri Sep 15 11:12:01 2023

@author: fkxxgis
"""

import json
import csv

json_file = "/Users/ddd/Downloads/single.json"

with open(json_file, 'r') as file:
    data = json.load(file)

fieldnames = set()
for item in data:
    fieldnames.update(json.loads(item['text']).keys())

csv_filename = "/Users/didi/Downloads/output.csv"

with open(csv_filename, 'w', newline='') as csvfile:
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writeheader()
    for item in data:
        json_string = item['text']
        row_data = json.loads(json_string)
        writer.writerow(row_data)

  其中,我们首先通过import语句导入必要的Python 模块,包括用于处理JSON 数据的json和用于处理CSV 文件的csv

  接下来,我们打开名为single.jsonJSON 文件并读取其内容,将其存储在data变量中。json.load(file)用于将JSON 文件内容加载到Python 数据结构中。随后,创建一个空集合fieldnames,用于存储将在CSV文件的头部写入的列名。

  紧接着,我们遍历data列表中的每个元素,其中每个元素是一个包含JSON 格式的字符串的字典。对于每个元素,将JSON 文本------也就是item['text']解析为字典,并获取该字典中的所有键。这些键将被添加到fieldnames集合中,以便稍后在CSV文件的头部(列名称)使用。

  其次,创建一个CSV 文件output.csv以进行写入,使用csv.DictWriter对象初始化,其中指定了要写入的列名(通过fieldnames变量)。使用writer.writeheader()写入CSV 文件的头部,这将包含字段名称。最后,遍历data列表中的每个元素,对于每个元素,将JSON 文本解析为字典,并将该字典的数据写入CSV 文件中,每行对应一个JSON对象。

  执行上述代码,我们即可在指定的结果.csv格式文件中看到我们转换之后的数据结果;如下图所示。其中,紫色框内部分就是列名,也就是我们提取出来的 ,而则是每一行的数据。

  至此,大功告成。

欢迎关注:疯狂学习GIS

相关推荐
DeepVisionary6 小时前
谷歌 Gemini Omni 1.1 Flash 正式发布:4K 视频、40 秒场景延伸,视频生成进入按 token 计费时代
python·自动化
阡之尘埃6 小时前
Python数据分析案例85——大模型微调全流程(SFT的LoRA微调)
人工智能·python·深度学习·语言模型·llm·微调·千问
海兰6 小时前
【应用】基于 Next.js 16 + Python mplfinance的金融K线图与技术指标可视化平台(三)
javascript·python·金融
cvcode_study6 小时前
Ollama+ComfyUI 多模态
大数据·人工智能·python
星核0penstarry8 小时前
试一试用gr.Workflow把AI多步骤串联变成可视化画布
人工智能·python·ai作画·api·ai编程·工作流·api聚合平台
taller_20008 小时前
【005】PiE 与传统 VBA 的核心区别
python·vba·pie·py
海兰8 小时前
【应用】基于 Next.js 16 + Python mplfinance的金融K线图与技术指标可视化平台(一)
javascript·python·金融
大衛說8 小时前
《Python 从入门到精通》系列总览与学习路线
开发语言·python·学习
小猴子爱上树8 小时前
跨境电商翻译工具推荐:批量图片翻译、视频字幕翻译、智能抠图一站式搞定
人工智能·python·音视频
丈剑走天涯9 小时前
基于 Python 3 语法的 PyCharm 练习示例,涵盖列表操作、类型判断及数据清洗等核心知识点
windows·python·pycharm