《数据采集技术》课件-JSONPath 与 json 模块_第1页
《数据采集技术》课件-JSONPath 与 json 模块_第2页
《数据采集技术》课件-JSONPath 与 json 模块_第3页
《数据采集技术》课件-JSONPath 与 json 模块_第4页
《数据采集技术》课件-JSONPath 与 json 模块_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JSONPath与json模块Contents知识目标掌握JSONPath与json模块使用方法技能目标提高数据采集和处理能力素养目标培养良好的信息素养和道德意识JSON简述JSON(JavaScriptObjectNotation,JS对象简谱)是比XML更简单的一种数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据。语法规则1.使用键值对(key:value)表示对象2.使用逗号(,)分隔多条数据3.使用花括号{}包含对象4.使用方括号[]表示数组JSON简述JSON键/值对格式:字段名称(包含在双引号中),后面加一个冒号,然后是值。"name":"XiaoHong"JSON的值:值必须是有效的JSON数据类型,包括:例如:1.字符串、数字、布尔值、null、数组或另一个JSON对象。2.字符串必须是由双引号包围的字符序列。3.数字可以是整数或浮点数。4.数组和对象可以包含其他JSON数据类型作为其值。JSON简述JSON键/值对JSON对象:对象在JavaScript中表示为花括号{}括起来的内容,数据结构为

{key:value,key:value,...}的键值对的结构。{"name":"XiaoHong","age":18}例如:JSON简述JSON数组数组在JavaScript中是中括号[]括起来的内容,数据结构为

[字段1,字段2,字段3,...],其中字段值的类型可以是:数字字符串数组对象思考JSON和XML都是文本格式语言,都被经常用于数据交换和网络传输,它们有什么区别呢?JSON与XML比较JSONXML可读性简洁的语法,它使用键值对的形式来表示数据,每个键值对之间用逗号分隔。规范的标签形式。结构JSON的结构是扁平的,不支持嵌套的数据结构。XML则支持嵌套的数据结构,可以表示复杂的数据结构。解析速度由于JSON的语法简单,所以其解析速度更快。需要处理更多的标签和属性。数据类型JSON的数据类型比XML更加丰富,支持更多的数据类型,如布尔值、null等。XML只支持字符串、数字、布尔值等基本数据类型。JSON与XML比较结论:需要表示复杂的数据结构或需要更多的数据类型支持,可以选择XML。需要语法格式简单,层次结构清晰,比XML更易于阅读,占用的字符量少,可以选择JSON。节约带宽提高传输效率各有优缺点,选择哪种格式取决于具体的需求和场景。用于网络数据传输时:JSON与XML比较结论:需要表示复杂的数据结构或需要更多的数据类型支持,可以选择XML。需要语法格式简单,层次结构清晰,比XML更易于阅读,其占用的字符量少可以选择JSON。用于网络数据传输时:节约带宽提高传输效率各有优缺点,选择哪种格式取决于具体的需求和场景。json模块介绍序列化反序列化Python对象编码转换JSON字符串JSON字符串解码转换Python对象dumps和dump方法用于Python对象的序列化。loads和load方法用于Python对象的反序列化。json模块使用importjson导入,提供了Python对象的序列化和反序列化功能。json模块的基本使用用于字符串和Python数据类型间进行转换。dumpsdumploadsloadjson模块提供了四个方法用于Python对象的反序列化用于Python对象的序列化json模块的基本使用把JSON格式字符串解码转换成Python对象。1.json.loads()方法JSONPython字典objectdict列表arraylist字符串stringunicode整数number(int)int,long浮点数number(real)float布尔值(真)trueTrue布尔值(假)falseFalse空nullNonejson模块的基本使用演示loads()方法的用法,把JSON格式字符串解码转换成Python对象。示例:importjsonstr_list='[1,2,3,4]'json.loads(str_list)运行结果:[1,2,3,4]str_dict='{"city":"北京","name":"小明"}'json.loads(str_dict)运行结果:{'city':'北京','name':'小明'}json模块的基本使用实现将Python类型编码为JSON字符串,返回一个str对象。2.json.dumps()方法PythonJSON字典dictobject列表listarray字符串strstring整数int,long,floatnumber布尔值(真)Truetrue布尔值(假)Falsefalse空Nonenulljson模块的基本使用演示dumps()方法的用法,实现将Python类型编码为JSON字符串。示例:demo_list=[1,2,3,4]json.dumps(demo_list)运行结果:'[1,2,3,4]'demo_tuple=(1,2,3,4)json.dumps(demo_tuple)运行结果:'[1,2,3,4]'demo_dict={'city':'北京','name':'小明'}json.dumps(demo_dict,ensure_ascii=False)运行结果:'{"city":"北京","name":"小明"}'json模块的基本使用读取文件中JSON形式的字符串元素,转化成Python类型。与json.loads()的区别在于:一个读取的是字符串,一个读取的是文件。3.json.load()示例:json.load()读取文件中JSON形式的字符串元素,转化成Python类型。str_list=json.load(open('liststr.json'))print(str_list)运行结果:{'city':'北京','name':'小兰'}str_dict=json.load(open('dictstr.json'))print(str_dict)运行结果:{'city':'北京','name':'小红'}str_list=[{"city":"北京","name":"小明"}]json.dump(str_list,open("lists.json","w"),ensure_ascii=False)str_dict={"city":"北京","name":"小红"}json.dump(str_dict,open("dict.json","w"),ensure_ascii=False)json模块的基本使用读取文件中JSON形式的字符串元素,转化成Python类型。与json.loads()的区别在于:一个读取的是字符串,一个读取的是文件。3.json.load()运行结果1运行结果2json模块的基本使用将Python内置类型序列化为json对象后写入文件。与json.dumps()的区别在于写入的是文件还是字符串。4.json.dump()示例:importjsondic={'country':'中国','city':'北京'}withopen("dict_str.json","w",encoding='utf-8')asf:json.dump(dic,f,ensure_ascii=False)运行结果JSONPathJavascriptPythonPHPJavapipinstalljsonpathJSONPath是一种信息抽取类库,是从JSON文档中抽取指定信息的工具。提供多种语言实现版本,包括:JSONPath的安装方法如下:JSONPath是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,提供多种语言实现版本,包括:JavascriptPythonPHPJavaJSONPath的安装方法如下:pipinstalljsonpathjsonpath与xpath的比较XPathJSONPath描述/$根节点。.@现行节点。/.or[]取子节点。..n/a取父节点,JSONPath未支持。//..就是不管位置,选择所有符合条件的节点。**匹配所有元素节点。@n/a根据属性访问,JSON不支持,因为JSON是个key-value递归结构,不需要属性访问。[][]迭代器标示(可以在里边做简单的迭代操作,如数组下标,根据内容选值等)。|[,]支持迭代器中做多选。[]?()支持过滤操作。n/a()支持表达式计算。()n/a分组,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论