【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

【Python】CSV文件转成JSON文件_第1张图片
JSON

【Python】CSV文件转成JSON文件_第2张图片

参考链接

  • python将CSV文件转换成JSON格式的文件
  • Python将csv文件转换为json文件
  • Python 基础教程

你可能感兴趣的:(数据处理,python,json,开发语言)