Python中csv格式和json格式之间的转换
json是处理JSON格式的Python标准库
1、cvs格式转成json格式
import json
fo=open("C:\\Users\\Administrator\\Desktop\\price2016.csv","r") #打开csv文件
ls=[]
for line in fo:
line=line.replace("\n","") #将换行换成空
ls.append(line.split(",")) #以,为分隔符
fo.close() #关闭文件流
fw=open("C:\\Users\\Administrator\\Desktop\\price2016.json","w") #打开json文件
for i in range(1,len(ls)): #遍历文件的每一行内容,除了列名
ls[i]=dict(zip(ls[0],ls[i])) #ls[0]为列名,所以为key,ls[i]为value,
#zip()是一个内置函数,将两个长度相同的列表组合成一个关系对
json.dump(ls[1:],fw,sort_keys=True,indent=4)
#将Python数据类型转换成json格式,编码过程
# 默认是顺序存放,sort_keys是对字典元素按照key进行排序
#indet参数用语增加数据缩进,使文件更具有可读性
fw.close()
2、json格式转成csv格式
import json
fr=open("C:\\Users\\Administrator\\Desktop\\price2016.json","r") #打开json文件
ls=json.load(fr) #将json格式的字符串转换成python的数据类型,解码过程
data=[ list(ls[0].keys()) ] #获取列名,即key
for item in ls:
data.append(list(item.values())) #获取每一行的值value
fr.close() #关闭json文件
fw=open("C:\\Users\\Administrator\\Desktop\\price2016.csv","w") #打开csv为文件
for line in data:
fw.write(",".join(line)+"\n") #以逗号分隔一行的每个元素,最后换行
fw.close() #关闭csv文件