【Python】CSV文件转成JSON文件

代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import json,os,re
 
source_file='part1.csv'
json_file_result='part1.json'
zd_key = ["name", "size", "container", "volume"]
# 判断文件是否存在,并清空文件内容
if os.path.exists(json_file_result):
	with open(json_file_result,"r+") as f:
		f.truncate()
if os.path.isfile(source_file):
	# 处理CSV文件,将文件里的内容取出来,并组装成一个列表
	with open(source_file,'r',encoding='UTF-8') as f:
		lines=f.readlines()
		for i in lines:
			# 去掉首行内容(标题)
			ifalerm=re.search('PartName',i)
			if not ifalerm:
				i = i.replace("\r", "").replace("\n", "").replace("\"", "")  # 将换行换成空
				# strip:同时去掉左右两边的空格;split:通过指定分隔符对字符串进行切片
				l = i.strip("\n").split(",")
				print(l)
				l[1] = ",".join(l[1:4]) # 将列表第2,3,4个元素合在一起成为第2个元素
				del l[2:4] #删除第 3,4个元素
				l[1] = '[' + l[1] + ']' # 给列表第二个元素加[]
				l[2] = int(l[2]) # 将列表的第3个元素转为int型
				l[3] = float(l[3])# 将列表的第4个元素转为float型
				print(l)
				# 将CSV里的内容作为字典的value,zd_k列表的内容作为字典的key;# zip()是一个内置函数,将两个长度相同的列表组合成一个关系对
				zd = dict(zip(zd_key, l))
				# indent:缩进
				data_json = json.dumps(zd, ensure_ascii=False, sort_keys=False, indent=4, separators=(',', ': '))
				# 将JSON格式的数据存储到txt文件中,便于使用
				with open(json_file_result,'a+',encoding='utf-8') as f:
					f.write(data_json + '\n,\n') # 每个段之间加 " , "
					f.close()
 
	print("写入完成。。。。。","\n""文件路径是:%s"%(os.path.abspath(json_file_result)))
else:
	print("文件不存在。。。。")

转换效果:

CSV

在这里插入图片描述
JSON

在这里插入图片描述

参考链接

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值