网站首页 > 博客文章 正文
??本文介绍基于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格式文件。
??明确了需求,我们就可以开始代码的撰写。本文所用代码如下。
#!/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.json的JSON文件并读取其内容,将其存储在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
猜你喜欢
- 2024-09-17 Kudra 介绍:可以从任何文档工具中提取代码数据
- 2024-09-17 Linux系统管理员必备的监控工具(linux监控工具nmon)
- 2024-09-17 简洁而优雅,Python Tablib实现将数据导出为Excel, Json等N种格式
- 2024-09-17 奋战一年,LangChain首个稳定版本发布,LangGraph把智能体构建为图
- 2024-09-17 推荐几个开发必备的JSON工具(推荐几个开发必备的json工具有哪些)
- 2024-09-17 浅谈在Linux中使用mongoexport工具导出数据
- 2024-09-17 常用的图像标注工具汇总(图像标注主要包括哪些项目)
- 2024-09-17 Python新工具:用三行代码提取PDF表格数据
- 2024-09-17 有备无患「GitHub 热点速览」(有备无患better safe than sorry)
- 2024-09-17 13个MacOS很赞的开源小工具-IT开发利器
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)