yhon文件和数据格式化

上传人:muj****520 文档编号:247916631 上传时间:2024-10-21 格式:PPT 页数:80 大小:2.31MB
返回 下载 相关 举报
yhon文件和数据格式化_第1页
第1页 / 共80页
yhon文件和数据格式化_第2页
第2页 / 共80页
yhon文件和数据格式化_第3页
第3页 / 共80页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Python,语言程序设计,第,7,章 文件和数据格式化,文件的使用,数据源,文件概述,文件是一个存储在辅助存储器上的数据序列,可以包含任何数据内容。概念上,文件是数据的集合和抽象,类似地,函数是程序的集合和抽象。用文件形式组织和表达数据更有效也更为灵活。文件包括两种类型:文本文件和二进制文件。,文件概述,二进制文件直接由比特,0,和比特,1,组成,没有统一字符编码,文件内部数据的组织格式与文件用途有关。二进制文件和文本文件最主要的区别在于是否有统一的字符编码,无论文件创建为文本文件或者二进制文件,都可以用“文本文件方式”和“二进制文件方式”打开,打开后的操作不同。,文件概述,微实例,7.1,:理解文本文件和二进制文件的区别。,微实例,7.1,m7.1DiffTextBin.py,1,2,3,4,5,6,textFile = open(7.1.txt,rt) #t,表示文本文件方式,print(textFile.readline(),textFile.close(),binFile = open(7-1.txt,rb) #r,表示二进制文件方式,print(binFile.readline(),binFile.close(),文件概述,输出结果为:,中国是个伟大的国家!,bxd6xd0xb9xfaxcaxc7xb8xf6xcexb0xb4xf3xb5xc4xb9xfaxbcxd2xa3xa1,采用文本方式读入文件,文件经过编码形成字符串,打印出有含义的字符;采用二进制方式打开文件,文件被解析为字节(,byte,)流。由于存在编码,字符串中的一个字符由,2,个字节表示,。,文件的打开关闭,Python,对文本文件和二进制文件采用统一的操作步骤,即“打开,-,操作,-,关闭”,文件的打开关闭,Python,通过解释器内置的,open(),函数打开一个文件,并实现该文件与一个程序变量的关联,,open(),函数格式如下:, = open(, ),open(),函数有两个参数:文件名和打开模式。文件名可以是文件的实际名字,也可以是包含完整路径的名字,文件的打开,关,关闭,open(),函数提供,7,种基本的打,开,开模式,打开模式,含义,r,只读模式,如果文件不存在,返回异常,FileNotFoundError,,默认值,w,覆盖写模式,文件不存在则创建,存在则完全覆盖源文件,x,创建写模式,文件不存在则创建,存在则返回异常,FileExistsError,a,追加写模式,文件不存在则创建,存在则在原文件最后追加内容,b,二进制文件模式,t,文本文件模式,默认值,+,与,r/w/x/a,一同使用,在原功能基础上增加同时读写功能,文件的读写,根据打开方,式,式不同可以,对,对文件进行,相,相应的读写,操,操作,,,Python,提供,4,个常用的文,件,件内容读取,方,方法,方法,含义,.readall(),读入整个文件内容,返回一个字符串或字节流,*,.read(size=-1),从文件中读入整个文件内容,如果给出参数,读入前,size,长度的字符串或字节流,.readline(size = -1),从文件中读入一行内容,如果给出参数,读入该行前,size,长度的字符串或字节流,.readlines(hint=-1),从文件中读入所有行,以每行为元素形成一个列表,如果给出参数,读入,hint,行,文件的读写,微实例,7.2,:文本文件,逐,逐行打印,微实例,7.2,m7.2PrintFilebyLines.py,1,2,3,4,5,fname = input(,请输入要打开的文件,: ,),fo = open(fname,r),for line in fo.readlines():,print(line),fo.close(),文件的读写,遍历文件的,所,所有行可以,直,直接这样完,成,成,1,2,3,4,5,fname = input(,请输入要打开的文件,: ,),fo = open(fname,r),for line in fo:,print(line),fo.close(),文件的,读,读写,如果程,序,序需要,逐,逐行处,理,理文件,内,内容,,建,建议采,用,用上述,代,代码格,式,式:,fo= open(fname,r,),forlineinfo:,#,处理一行,数,数据,fo.close(),文件的读,写,写,Python,提供,3,个与文件,内,内容写入,有,有关的方,法,法,如表,所,所示。,方法,含义,.write(s),向文件写入一个字符串或字节流,.writelines(lines),将一个元素为字符串的列表写入文件,.seek(offset),改变当前文件操作指针的位置,,offset,的值:,0,:文件开头;,1:,当前位置;,2:,文件结尾,文件的读,写,写,微实例,7.3,m7.3WriteListtoFile.py,1,2,3,4,5,6,7,fname = input(,请输入要写入的文件,: ,),fo = open(fname,w+),ls = ,唐诗, ,宋词, ,元曲,fo.writelines(ls),for line in fo:,print(line),fo.close(),程序执行,结,结果如下,:,:,请输入要写入的文件,: test.txt,PIL,库的使用,PIL,库概述,PIL,(,Python ImageLibrary,)库是,Python,语言的第,三,三方库,,需,需要通过,pip,工具安装,。,。,:pip install pillow #,或者,pip3 install pillow,PIL,库支持图,像,像存储、,显,显示和处,理,理,它能,够,够处理几,乎,乎所有图,片,片格式,,可,可以完成,对,对图像的,缩,缩放、剪,裁,裁、叠加,以,以及向图,像,像添加线,条,条、图像,和,和文字等,操,操作。,PIL,库概述,PIL,库可以完,成,成图像归,档,档和图像,处,处理两方,面,面功能需,求,求:,图像归档,:,:对图像,进,进行批处,理,理、生成,图,图像预览,、,、图像格,式,式转换等,;,;,图像处,理,理:图,像,像基本,处,处理、,像,像素处,理,理、颜,色,色处理,等,等。,PIL,库,Image,类解析,在,PIL,中,任,何,何一个,图,图像文,件,件都可,以,以用,Image,对象表,示,示,Image,类的图,像,像读取,和,和创建,方,方法。,方法,描述,Image.open(filename),根据参数加载图像文件,Image.new(mode, size, color),根据给定参数创建一个新的图像,Image.open(StringIO.StringIO(buffer),从字符串中获取图像,Image.frombytes(mode, size, data),根据像素点,data,创建图像,Image.verify(),对图像文件完整性进行检查,返回异常,PIL,库,Image,类解析,要加载,一,一个图,像,像文件,,,,最简,单,单的形,式,式如下,,,,之后,所,所有操,作,作对,im,起作用,from PIL import Image,im = Image.open(D:pycodesbirdnest.jpg),PIL,库,Image,类解析,Image,类有,4,个处理,图,图片的,常,常用属,性,性,属性,描述,Image.format,标识图像格式或来源,如果图像不是从文件读取,值是,None,Image.mode,图像的色彩模式,,L,灰度图像、,RGB,真彩色图像、,CMYK,出版图像,Image.size,图像宽度和高度,单位是像素(,px,),返回值是二元元组(,tuple,),Image.palette,调色板属性,返回一个,ImagePalette,类型,PIL,库,Image,类解析,微实例,7.1,:,GIF,文件图,像,像提取,。,。,对一个,GIF,格式动,态,态文件,,,,提取,其,其中各,帧,帧图像,,,,并保,存,存为文,件,件。,微实例,7.1,m7.1GifExtractor.py,1,2,3,4,5,6,7,8,9,from PIL import Image,im = Image.open(pybit.gif) #,读入一个,GIF,文件,try:,im.save(picframe:02d.png.format(im.tell(),while True:,im.seek(im.tell()+1),im.save(picframe:02d.png.format(im.tell(),except:,print(,处理结束,),PIL,库,Image,类解析,Image,类的图,像,像转换,和,和保存,方,方法如,表,表所示,。,。,方法,描述,Image.save(filename, format),将图像保存为,filename,文件名,,format,是图片格式,Image.convert(mode),使用不同的参数,转换图像为新的模式,Image.thumbnail(size),创建图像的缩略图,,size,是缩略图尺寸的二元元组,PIL,库,Image,类解析,生成,birdnest.jpg,图像的,缩,缩略图,,,,其中,(,(,128,,,128,)是缩,略,略图的,尺,尺寸。,im.thumbnail(128, 128),im.save(birdnestTN,JPEG),北京鸟,巢,巢图片,及,及其缩,略,略图,PIL,库,Image,类解析,Image,类可以,缩,缩放和,旋,旋转图,像,像,其,中,中,,rotate(),方法以,逆,逆时针,旋,旋转的,角,角度值,作,作为参,数,数来旋,转,转图像,。,。,方法,描述,Image.resize(size),按,size,大小调整图像,生成副本,Image.rotate(angle),按,angle,角度旋转图像,生成副本,PIL,库,Image,类解析,Image,类能够,对,对每个,像,像素点,或,或者一,幅,幅,RGB,图像的,每,每个通,道,道单独,进,进行操,作,作,split(),方法能,够,够将,RGB,图像各,颜,颜色通,道,道提取,出,出来,,merge(),方法能,够,够将各,独,独立通,道,道再合,成,成一幅,新,新的图,像,像。,方法,描述,Image.point(func),根据函数,func,功能对每个元素进行运算,返回图像副本,Image.split(),提取,RGB,图像的每个颜色通道,返回图像副本,Image.merge(mode,,,bands),合并通道,,采用,mode,色彩,,bands,是新色的色彩通道,Image.blend(im1,im2,alpha),将两幅图片,im1,和,im2,按照如下公式插值后生成新的图像:,im1 * (1.0-alpha) + im2 * alpha,PIL,库,Image,类解析,微实例,7.2,:图像的颜,色,色交换。,交换图像中,的,的颜色。可,以,以通过分离,RGB,图片的三个,颜,颜色通道实,现,现颜色交换,微实例,7.2,m7.1ChangeRGB.py,1,2,3,4,5,from PIL import Image,im = Image.open(birdnest.jpg),r, g, b = im.split(),om = Image.merge(RGB, (b, g, r),om.save(birdnestBGR.jpg),PIL,库,Image,类解析,被改变颜色,的,的北京鸟巢,图,图片,PIL,库,Image,类解析,操作图像的,每,每个像素点,需,需要通过函,数,数实现,采,用,用,lambda,函数和,point(),方法搭配使,用,用,例子如,下,下,im =,Image.open(D:pycodesbirdnest.jpg) #,打开鸟巢文件,r, g, b = im.split() #,获得,RGB,通道数据,newg = g.point(lambda i: i * 0.9) #,将,G,通道颜色值变为原来的,0.9,倍,newb = b.point(lambda i: i om = Image.merge(im.mode, (r, newg, newb) #,将,3,个通道合形成新图像,om.save(,D:pycodesbirdnestMerge.jpg),#,输出图片,PIL,库,Image,类解析,去掉光线的,北,北京鸟巢图,片,片,图像的过滤,和,和增强,PIL,库的,ImageFilter,类和,ImageEnhance,类提供了过,滤,滤图像和增,强,强图像的,方法,共,10,种,方法表示,描述,ImageFilter.BLUR,图像的模糊效果,ImageFilter.CONTOUR,图像的轮廓效果,ImageFilter.DETAIL,图像的细节效果,ImageFilter.EDGE_ENHANCE,图像的边界加强效果,ImageFilter.EDGE_ENHANCE_MORE,图像的阈值边界加强效果,ImageFilter.EMBOSS,图像的浮雕效果,ImageFilter.FIND_EDGES,图像的边界效果,ImageFilter.SMOOTH,图像的平滑效果,ImageFilter.SMOOTH_MORE,图像的阈值平滑效果,ImageFilter.SHARPEN,图像的锐化效果,图像的过滤,和,和增强,利用,Image,类的,filter(),方法可以使,用,用,ImageFilter,类,如下:,Image.filter(ImageFilter.fuction),微实例,7.3,:图像的轮,廓,廓获取。,获取图像的,轮,轮廓,,,北京鸟巢变,得,得更加抽象,、,、更具想象,空,空间!,图像的过滤,和,和增强,微实例,7.3,m7.3GetImageContour.py,1,2,3,4,5,from PIL import Image,from PIL import ImageFilter,im = Image.open(birdnest.jpg),om = im.filter(ImageFilter.CONTOUR),om.save(birdnestContour.jpg),北京鸟巢图,片,片的轮廓效,果,果,图像的过滤,和,和增强,ImageEnhance,类提供了更,高,高级的图像,增,增强需求,,它,它提供调整,色,色彩度、亮,度,度、对比度,、,、锐化等功,能,能。,方法,描述,ImageEnhance.enhance(factor),对选择属性的数值增强,factor,倍,ImageEnhance.Color(im),调整图像的颜色平衡,ImageEnhance.Contrast(im),调整图像的对比度,ImageEnhance.Brightness(im),调整图像的亮度,ImageEnhance.Sharpness(im),调整图像的锐度,图像的过滤,和,和增强,微实例,7.4,:图像的对,比,比度增强。,增强图像的,对,对比度为初,始,始的,20,倍。,微实例,7.4,m7.4EnImageContrast.py,1,2,3,4,5,from PIL import Image,from PIL import ImageEnhance,im = Image.open(birdnest.jpg),om = ImageEnhance.Contrast(im),om.enhance(20).save(birdnestEnContrast.jpg),图像的过滤,和,和增强,北京鸟巢图,片,片的,20,倍对比度增,强,强效果,图像字符画,绘,绘制,图像字符画,绘,绘制,位图图片是,由,由不同颜色,像,像素点组成,的,的规则分布,,,,如果采用,字,字符串代替,像,像素,图像,就,就成为了字,符,符画。,定义一个字,符,符集,将这,个,个字符集替,代,代图像中的,像,像素点。,1,2,ascii_char =list($B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjf,1234568795t/|()1?-_+i!;:,.),图像字符画,绘,绘制,1,2,3,4,5,6,def get_char(r, b, g, alpha=256):,if alpha = 0:,return ,gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b) unit = 256 / len(ascii_char),return ascii_chargray/unit,定义彩色向,灰,灰度的转换,公,公式如下,,其,其中,R,、,G,、,B,分别是像素,点,点的,RGB,颜色值:,Gray= R *0.2126 +G * 0.7152+ B* 0.0722,因此,像素,的,的,RGB,颜色值与字,符,符集的对应,函,函数如下:,实例代码,12.1,e12.DrawCharImage.py,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,#e12.1DrawCharImage.py.py,from PIL import Image,ascii_char = list($%_&WM#*oahkbdpqwmZO0QLCJUYXzcvunxr,jft/|()1?-/+i!;:,.),def get_char(r, b, g, alpha=256):,if alpha = 0:,return ,gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b),unit = 256 / len(ascii_char),return ascii_charint(gray/unit),def main():,im = Image.open(pic.jpg),WIDTH, HEIGHT = 100, 60,im = im.resize(WIDTH, HEIGHT),txt = ,for i in range(HEIGHT):,for j in range(WIDTH):,txt += get_char(*im.getpixel(j, i),txt += n,fo = open(pic_char.txt,w),fo.write(txt),fo.close(),main(),图像字,符,符画绘,制,制,一二维,数,数据格,式,式化和,处,处理,数据组,织,织的维,度,度,一维数,据,据由对,等,等关系,的,的有序,或,或无序,数,数据构,成,成,采,用,用线性,方,方式组,织,织,对,应,应于数,学,学中的,数,数组和,集,集合等,概,概念。,中国、美国、日本、德国、法国、英国、意大利、加拿大、俄罗斯、欧盟、澳大利亚、南非、阿根廷、巴西、印度、印度尼西亚、墨西哥、沙特阿拉伯、土耳其、韩国,数据组,织,织的维,度,度,二维数,据,据,也,称,称表格,数,数据,,由,由关联,关,关系数,据,据构成,,,,采用,表,表格方,式,式组织,,,,对应,于,于数学,中,中的矩,阵,阵,常,见,见的表,格,格都属,于,于二维,数,数据。,城市,环比,同比,定基,北京,101.5,120.7,121.4,上海,101.2,127.3,127.8,广州,101.3,119.4,120.0,深圳,102.0,140.9,145.5,沈阳,100.1,101.4,101.6,环比:,上,上月,=100,;同比,:,:上年,同,同月,=100,;定基,:,:,2015,年,=100,。,数据组,织,织的维,度,度,高维数,据,据由键,值,值对类,型,型的数,据,据构成,,,,采用,对,对象方,式,式组织,,,,属于,整,整合度,更,更好的,数,数据组,织,织方式,。,。高维,数,数据在,网,网络系,统,统中十,分,分常用,,,,,HTML,、,XML,、,JSON,等都是高维,数,数据组织的,语,语法结构。,数据组织的,维,维度,本书作者, : , ,姓氏, : ,嵩,名字, : ,天,单位, : ,北京理工大学, , ,姓氏, : ,礼,名字, : ,欣,单位, : ,北京理工大学, , ,姓氏, : ,黄,名字, : ,天羽,单位, : ,北京理工大学, ,一二维数据,的,的存储格式,一维数据是,最,最简单的数,据,据组织类型,,,,有多种存,储,储格式,常,用,用特殊字符,分,分隔:,(,1,)用一个或,多,多个空格分,隔,隔,例如:,中国 美,国,国 日本德国法国 英,国,国 意大,利,利,(,2,)用逗号分,隔,隔,例如:,中国,美国,日本,德国,法国,英国,意大利,(,3,)用其他符,号,号或符号组,合,合分隔,建,议,议采用不出,现,现在数据中,的,的特殊符号,中国,;,美国,;,日本,;,德国,;,法国,;,英国,;,意大利,一二维数,据,据的存储,格,格式,逗号分割,数,数值的存,储,储格式叫,做,做,CSV,格式(,Comma-SeparatedValues,,即逗号,分,分隔值),,,,它是一,种,种通用的,、,、相对简,单,单的文件,格,格式,在,商,商业和科,学,学上广泛,应,应用,尤,其,其应用在,程,程序之间,转,转移表格,数,数据。,一二维数,据,据的存储,格,格式,该格式的,应,应用有一,些,些基本规,则,则,如下,:,:,(,1,)纯文本,格,格式,通,过,过单一编,码,码表示字,符,符;,(,2,)以行为,单,单位,开,头,头不留空,行,行,行之,间,间没有空,行,行;,(,3,)每行表,示,示一个一,维,维数据,,多,多行表示,二,二维数据,;,;,(,4,)以逗号,分,分隔每列,数,数据,列,数,数据为空,也,也要保留,逗,逗号;,(,5,)可以包,含,含或不包,含,含列名,,包,包含时列,名,名放置在,文,文件第一,行,行。,一二维数,据,据的存储,格,格式,二维数据,采,采用,CSV,存储后的,内,内容如下,:,:,城市,环比,同比,定基,北京,101.5,120.7,121.4,上海,101.2,127.3,127.8,广州,101.3,119.4,120,深圳,102,140.9,145.5,沈阳,100.1,101.4,101.6,CSV,格式存储,的,的文件一,般,般采用,.csv,为扩展名,,,,可以通,过,过,Windows,平台上的,记,记事本或,微,微软,Office Excel,工具打开,,,,也可以,在,在其他操,作,作系统平,台,台上用文,本,本编辑工,具,具打开。,一二维数据,的,的表示和读,写,写,CSV,文件的每一,行,行是一维数,据,据,可以使,用,用,Python,中的列表类,型,型表示,整,个,个,CSV,文件是一个,二,二维数据,,由,由表示每一,行,行的列表类,型,型作为元素,,,,组成一个,二,二维列表。,城市, ,环比, ,同比, ,定基,n,北京, 101.5, 120.7, 121.4n,上海, 101.2, 127.3, 127.8n,广州, 101.3, 119.4, 120.0n,深圳, 102.0, 140.9, 145.5n,沈阳, 100.1, 101.4, 101.6n,一二维数据,的,的表示和读,写,写,需要注意,,以,以,split(,),方法从,CSV,文件中获得,内,内容时,每,行,行最后一个,元,元素后面包,含,含了一个换,行,行符(,n,)。对于数,据,据的表达和,使,使用来说,,这,这个换行符,是,是多余的,,可,可以通过使,用,用字符串的,replace(),方法将其去,掉,掉,如第,4,行。,一二维数据,的,的表示和读,写,写,微实例,7.6,:逐行处理,CSV,格式数据。,微实例,7.6,m7.6GetCSVbyLine.py,1,2,3,4,5,6,7,8,9,10,fo = open(price2016.csv, r),ls = ,for line in fo:,line = line.replace(n,),ls = line.line.split(,),lns = ,for s in ls:,lns += t.format(s),print(lns),fo.close(),一二维数据,的,的表示和读,写,写,运行后的输,出,出结果如下,:,:,城市,环比,同比,定基,北京,101.5120.7121.4,上海,101.2127.3127.8,广州,101.3119.4120.0,深圳,102.0140.9145.5,沈阳,100.1101.4101.6,一二维数据,的,的表示和读,写,写,微实例,7.7,:一维数据,写,写入,CSV,文件。,微实例,7.7,m7.7WriteD1toCSV.py,1,2,3,4,fo = open(,price2016bj.csv,w),ls = ,北京, 101.5, 120.7, 121.4,fo.write(,.join(ls)+ n),fo.close(),一二维数据,的,的表示和读,写,写,对于列表中,存,存储的二维,数,数据,可以,通,通过循环写,入,入一维数据,的,的方式写入,CSV,文件,参考,代,代码样式如,下,下:,for row inls:,.write(,.join(row)+n),一二维数据,的,的表示和读,写,写,微实例,7.8,:二维数据,写,写入,CSV,文件。,城市,环比,同比,定基,北京,1.0%,1.2%,1.2%,上海,1.0%,1.3%,1.3%,广州,1.0%,1.2%,1.2%,深圳,1.0%,1.4%,1.5%,沈阳,1.0%,1.0%,1.0%,一二维数据,的,的表示和读,写,写,微实例,7.8,m7.8WriteD2toCSV.py,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,fr = open(price2016.csv, r),fw = open(price2016out.csv, w),ls = ,for line in fr: #,将,CSV,文件中的二维数据读入到列表变量,line = line.replace(n,),ls.append(line.split(,),for i in range(len(ls): #,遍历列表变量计算百分数,for j in range(len(lsi):,if lsij.replace(.,).isnumeric():,lsij = :.2%.format(float(lsij)/100),for row in ls: #,将列表变量中的二位数据输出到,CSV,文件,print(row),fw.write(,.join(row)+n),fr.close(),fw.close(),CSV,格式的,HTML,展示,CSV,格式的,HTML,展示,文件名:,CSV2HTML.html,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,2016,年,7,月部分大中城市新建住宅价格指数,城市,环比,同比,定基,北京,101.5120.7121.4,上海,101.2127.3127.8,广州,101.3119.4120.0,深圳,102.0140.9145.5,沈阳,100.1101.4101.6,CSV,格式的,HTML,展示,实例代码,13.1,e13.1csv2html.py,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,#e13.1csv2html.py,seg1 = ,nnn,2016,年,7,月部分大中城市新建住宅价格指数,n ,seg2 = n,seg3 = nn,def fill_data(locls):,seg = ,n.format(*locls),return seg,fr = open(price2016.csv, r),ls = ,CSV,格式的,HTML,展示,实例代码,13.1,e13.1csv2html.py,16,17,18,19,20,21,22,23,24,25,26,27,28,29,for line in fr:,line = line.replace(n,),ls.append(line.split(,),fr.close(),fw = open(price2016.html, w),fw.write(seg1),fw.write(nnnn.format(*ls0),fw.write(seg2),for i in range(len(ls)-1):,fw.write(fill_data(lsi+1),fw.write(seg3),fw.close(),高维数据的,格,格式化,高维数据的,格,格式化,与一维二维,数,数据不同,,高,高维数据能,展,展示数据间,更,更为复杂的,组,组织关系。,为,为了保持灵,活,活性,表示,高,高维数据不,采,采用任何结,构,构形式,仅,采,采用最基本,的,的二元关系,,,,即键值对,。,。万维网是,高,高维数据最,成,成功的典型,应,应用。,JSON,格式可以对,高,高维数据进,行,行表达和存,储,储。,JSON,(,JavaScriptObject Notation,)是一种轻,量,量级的数据,交,交换格式,,易,易于阅读和,理,理解。,JSON,格式表达键,值,值对,的基本格式,如,如下,键值,对,对都保存在,双,双引号中:,key: value,高维数据的,格,格式化,当多个键值,对,对放在一起,时,时,,JSON,有如下一些,约,约定:,数据保存在,键,键值对中;,键值对之间,由,由逗号分隔,;,;,括号用于保,存,存键值对数,据,据组成的对,象,象;,方括号用于,保,保存键值对,数,数据组成的,数,数组。,以“本书作,者,者”,JSON,数据为例。,Json,格,格式,高维,数,数据,的,的格,式,式化,本书作者, : , ,姓氏, : ,嵩,名字, : ,天,单位, : ,北京理工大学, ,姓氏, : ,礼,名字, : ,欣,单位, : ,北京理工大学, , ,姓氏, : ,黄,名字, : ,天羽,单位, : ,北京理工大学, ,json,库的,使,使用,Json,库的,概,概述,json,库主,要,要包,括,括两,类,类函,数,数:,操,操作,类,类函,数,数和,解,解析,类,类函,数,数,操作,类,类函,数,数主,要,要完,成,成外,部,部,JSON,格式,和,和程,序,序内,部,部数,据,据类,型,型之,间,间的,转,转换,功,功能,解析,类,类函,数,数主,要,要用,于,于解,析,析键,值,值对,内,内容,。,。,Json,库的,解,解析,函数,描述,json.dumps(obj, sort_keys=,False, indent=None),将,Python,的数据类型转换为,JSON,格式,编码过程,json.loads(string),将,JSON,格式字符串转换为,Python,的数据类型,解码过程,json.dump(obj, fp, sort_keys=,False, indent=None),与,dumps(),功能一致,输出到文件,fp,json.load(fp),与,loads(),功能一致,从文件,fp,读入,dumps(),和,loads(),分别,对,对应,编,编码,和,和解,码,码功,能,能。,Json,库的,解,解析,dt = b:2,c:4,a:6,s1 = json.dumps(dt) #dumps,返回,JSON,格式的字符串类型,s2 = json.dumps(dt,sort_keys=True,indent=4),print(s1),c: 4, a: 6, b: 2,print(s2),a: 6,b: 2,c: 4,print(s1=s2),False,dt2 = json.loads(s2),print(dt2, type(dt2),c: 4, a: 6, b: 2 ,CSV,和,JSON,格式,相,相互,转,转换,CSV,和,JSON,格式,相,相互,转,转换,CSV,格式,常,常用,于,于一,二,二维,数,数据,表,表示,和,和存,储,储,,JSON,也,可,可,以,以,表,表,示,示,一,一,二,二,维,维,数,数,据,据,。,。,在,在,网,网,络,络,信,信,息,息,传,传,输,输,中,中,,,,,可,可,能,能,需,需,要,要,统,统,一,一,表,表,示,示,方,方,式,式,,,,,因,因,此,此,,,,,需,需,要,要,在,在,CSV,和,JSON,格,式,式,间,间,进,进,行,行,相,相,互,互,转,转,换,换,。,。,同比,: 120.7,城市,: ,北京,定基,: 121.4,环比,: 101.5,CSV,和,JSON,格,式,式,相,相,互,互,转,转,换,换,将,CSV,转,换,换,成,成,JSON,格式的,代,代码如,下,下,实例代码,14.1,e14.1csv2json.py,1,2,3,4,5,6,7,8,9,10,11,12,13,#e14.1csv2json.py,import json,fr = open(price2016.csv, r),ls = ,for line in fr:,line = line.replace(n,),ls.append(line.split(,),fr.close(),fw = open(price2016.json, w),for i in range(1,len(ls):,lsi = dict(zip(ls0, lsi),json.dump(ls1:,fw, sort_keys=True, indent=4),fw.close(),同比,: 120.7,城市,: ,北京,定基,: 121.4,环比,: 101.5,同比,: 127.3,城市,: ,上海,定基,: 127.8,环比,: 101.2,同比,: 119.4,城市,: ,广州,定基,: 120,环比,: 101.3,同比,: 140.9,城市,: ,深圳,定基,: 145.5,环比,: 102,同比,: 101.4,城市,: ,沈阳,定基,: 101.6,环比,: 100.1,同比,: ,城市,: ,定基,: ,环比,: ,将二维,JSON,格式数,据,据转换,成,成,CSV,格式的,代,代码如,下,下,供,参,参考。,实例代码,14.2,e14.2json2csv.py,1,2,3,4,5,6,7,8,9,10,11,12,#14.2json2csv.py,import json,fr = open(price2016.json, r),ls = json.load(fr),data = list(ls0.keys() ,for item in ls:,data.append(list(item.values(),fr.close(),fw = open(price2016_from_json.csv, w),for item in data:,fw.write(,.join(item) + n),fw.close(),演讲完,毕,毕,谢,谢,谢观看,!,!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 营销创新


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!