python从入门到入魔第是十三天——CSV和JSON格式简单转换方法

本文介绍了如何在Python中将CSV文件转换为JSON文件以及将JSON文件转换回CSV文件的两种方法。通过DictReader和DictWriter实现了数据的双向转换,详细展示了使用csv和json库的步骤,适合初学者学习。
摘要由CSDN通过智能技术生成

CSV格式常用于一二维数据表示和存储,是一种纯文本形式存储表格数据的表示方式。
操作文档采用python从入门到入魔第是十一天——CSV标准库的使用生成的CSV 类型的“人员信息”文件
一、CSV数据类型转JSON类型转换方式如下:
操作文档

方法一:
import json
import csv
fr = open("D:/日常文件/人员信息.csv","r")
fw = open("D:/日常文件/JSON类型数据1.json","w")
dict_reader = csv.DictReader(fr)
ls = []
header = dict_reader.fieldnames
print(header)  #打印第一行
for i in dict_reader:
    ls.append(i)
json.dump(ls,fw,sort_keys=True,indent=4,ensure_ascii=False)
fr.close()
fw.close()
		
	
方法二:
import json
#数据读入
fr = open("D:/日常文件/人员信息.csv","r")
list = []
for line in fr:
    line = line.replace("\n","")
    list.append(line.split(","))
fr.close()
#数据处理,转为JSON格式,存入JSON类型数据.json文件
fw = open("D:/日常文件/JSON类型数据.json","w")
for i in range(1,len(list)):
    list[i] = dict(zip(list[0],list[i]))#zip()内置函数,将两个长度相同的列表组合成一个关系对
json.dump(list[1:],fw,sort_keys=True,indent=4,ensure_ascii=False)
fw.close()

#zip函数使用
>>> x = ["a","b","c"]
>>> y = [1,2,3]
>>> print(list(zip(x,y)))#列表类型
[('a', 1), ('b', 2), ('c', 3)]
>>> print(dict(zip(x,y)))#字典类型
{'a': 1, 'b': 2, 'c': 3}
>>> 

输出结果
输出展示图
二、JSON数据类型转CSV类型转换方式如下:

方法一:
import json
import csv
with open("D:/日常文件/JSON类型数据.json","r") as fr:
    ls = json.load(fr)
with open("D:/日常文件/人员信息02.csv", "w", newline="") as fw1:
    header = list(ls[0].keys())  #获取表头数据 
    write = csv.DictWriter(fw1,fieldnames=header)
    write.writeheader()  #写入表头
    write.writerows(ls)  #写入数据
fr.close()
fw1.close()


方法二:
import json
fr = open("D:/日常文件/JSON类型数据.json","r")
ls = json.load(fr)
data = [list(ls[0].keys())]  #获取键数据并存入列表data中
for i in ls:
	data.append(ls[i].values())
fr.close()
fw = open("D:/日常文件/人员信息01.csv", "w")
for i in data:
	fw.write(",".join(i) + "\n")
fw.close()


输出结果

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

如何学会学习?

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值