《數(shù)據(jù)采集技術(shù)》課件-JSONPath 與 json 模塊_第1頁
《數(shù)據(jù)采集技術(shù)》課件-JSONPath 與 json 模塊_第2頁
《數(shù)據(jù)采集技術(shù)》課件-JSONPath 與 json 模塊_第3頁
《數(shù)據(jù)采集技術(shù)》課件-JSONPath 與 json 模塊_第4頁
《數(shù)據(jù)采集技術(shù)》課件-JSONPath 與 json 模塊_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

JSONPath與json模塊Contents知識(shí)目標(biāo)掌握J(rèn)SONPath與json模塊使用方法技能目標(biāo)提高數(shù)據(jù)采集和處理能力素養(yǎng)目標(biāo)培養(yǎng)良好的信息素養(yǎng)和道德意識(shí)JSON簡述JSON(JavaScriptObjectNotation,JS對(duì)象簡譜)是比XML更簡單的一種數(shù)據(jù)交換格式,采用完全獨(dú)立于編程語言的文本格式來存儲(chǔ)和表示數(shù)據(jù)。語法規(guī)則1.使用鍵值對(duì)(key:value)表示對(duì)象2.使用逗號(hào)(,)分隔多條數(shù)據(jù)3.使用花括號(hào){}包含對(duì)象4.使用方括號(hào)[]表示數(shù)組JSON簡述JSON鍵/值對(duì)格式:字段名稱(包含在雙引號(hào)中),后面加一個(gè)冒號(hào),然后是值。"name":"XiaoHong"JSON的值:值必須是有效的JSON數(shù)據(jù)類型,包括:例如:1.字符串、數(shù)字、布爾值、null、數(shù)組或另一個(gè)JSON對(duì)象。2.字符串必須是由雙引號(hào)包圍的字符序列。3.數(shù)字可以是整數(shù)或浮點(diǎn)數(shù)。4.數(shù)組和對(duì)象可以包含其他JSON數(shù)據(jù)類型作為其值。JSON簡述JSON鍵/值對(duì)JSON對(duì)象:對(duì)象在JavaScript中表示為花括號(hào){}括起來的內(nèi)容,數(shù)據(jù)結(jié)構(gòu)為

{key:value,key:value,...}的鍵值對(duì)的結(jié)構(gòu)。{"name":"XiaoHong","age":18}例如:JSON簡述JSON數(shù)組數(shù)組在JavaScript中是中括號(hào)[]括起來的內(nèi)容,數(shù)據(jù)結(jié)構(gòu)為

[字段1,字段2,字段3,...],其中字段值的類型可以是:數(shù)字字符串?dāng)?shù)組對(duì)象思考JSON和XML都是文本格式語言,都被經(jīng)常用于數(shù)據(jù)交換和網(wǎng)絡(luò)傳輸,它們有什么區(qū)別呢?JSON與XML比較JSONXML可讀性簡潔的語法,它使用鍵值對(duì)的形式來表示數(shù)據(jù),每個(gè)鍵值對(duì)之間用逗號(hào)分隔。規(guī)范的標(biāo)簽形式。結(jié)構(gòu)JSON的結(jié)構(gòu)是扁平的,不支持嵌套的數(shù)據(jù)結(jié)構(gòu)。XML則支持嵌套的數(shù)據(jù)結(jié)構(gòu),可以表示復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。解析速度由于JSON的語法簡單,所以其解析速度更快。需要處理更多的標(biāo)簽和屬性。數(shù)據(jù)類型JSON的數(shù)據(jù)類型比XML更加豐富,支持更多的數(shù)據(jù)類型,如布爾值、null等。XML只支持字符串、數(shù)字、布爾值等基本數(shù)據(jù)類型。JSON與XML比較結(jié)論:需要表示復(fù)雜的數(shù)據(jù)結(jié)構(gòu)或需要更多的數(shù)據(jù)類型支持,可以選擇XML。需要語法格式簡單,層次結(jié)構(gòu)清晰,比XML更易于閱讀,占用的字符量少,可以選擇JSON。節(jié)約帶寬提高傳輸效率各有優(yōu)缺點(diǎn),選擇哪種格式取決于具體的需求和場(chǎng)景。用于網(wǎng)絡(luò)數(shù)據(jù)傳輸時(shí):JSON與XML比較結(jié)論:需要表示復(fù)雜的數(shù)據(jù)結(jié)構(gòu)或需要更多的數(shù)據(jù)類型支持,可以選擇XML。需要語法格式簡單,層次結(jié)構(gòu)清晰,比XML更易于閱讀,其占用的字符量少可以選擇JSON。用于網(wǎng)絡(luò)數(shù)據(jù)傳輸時(shí):節(jié)約帶寬提高傳輸效率各有優(yōu)缺點(diǎn),選擇哪種格式取決于具體的需求和場(chǎng)景。json模塊介紹序列化反序列化Python對(duì)象編碼轉(zhuǎn)換JSON字符串JSON字符串解碼轉(zhuǎn)換Python對(duì)象dumps和dump方法用于Python對(duì)象的序列化。loads和load方法用于Python對(duì)象的反序列化。json模塊使用importjson導(dǎo)入,提供了Python對(duì)象的序列化和反序列化功能。json模塊的基本使用用于字符串和Python數(shù)據(jù)類型間進(jìn)行轉(zhuǎn)換。dumpsdumploadsloadjson模塊提供了四個(gè)方法用于Python對(duì)象的反序列化用于Python對(duì)象的序列化json模塊的基本使用把JSON格式字符串解碼轉(zhuǎn)換成Python對(duì)象。1.json.loads()方法JSONPython字典objectdict列表arraylist字符串stringunicode整數(shù)number(int)int,long浮點(diǎn)數(shù)number(real)float布爾值(真)trueTrue布爾值(假)falseFalse空nullNonejson模塊的基本使用演示loads()方法的用法,把JSON格式字符串解碼轉(zhuǎn)換成Python對(duì)象。示例:importjsonstr_list='[1,2,3,4]'json.loads(str_list)運(yùn)行結(jié)果:[1,2,3,4]str_dict='{"city":"北京","name":"小明"}'json.loads(str_dict)運(yùn)行結(jié)果:{'city':'北京','name':'小明'}json模塊的基本使用實(shí)現(xiàn)將Python類型編碼為JSON字符串,返回一個(gè)str對(duì)象。2.json.dumps()方法PythonJSON字典dictobject列表listarray字符串strstring整數(shù)int,long,floatnumber布爾值(真)Truetrue布爾值(假)Falsefalse空Nonenulljson模塊的基本使用演示dumps()方法的用法,實(shí)現(xiàn)將Python類型編碼為JSON字符串。示例:demo_list=[1,2,3,4]json.dumps(demo_list)運(yùn)行結(jié)果:'[1,2,3,4]'demo_tuple=(1,2,3,4)json.dumps(demo_tuple)運(yùn)行結(jié)果:'[1,2,3,4]'demo_dict={'city':'北京','name':'小明'}json.dumps(demo_dict,ensure_ascii=False)運(yùn)行結(jié)果:'{"city":"北京","name":"小明"}'json模塊的基本使用讀取文件中JSON形式的字符串元素,轉(zhuǎn)化成Python類型。與json.loads()的區(qū)別在于:一個(gè)讀取的是字符串,一個(gè)讀取的是文件。3.json.load()示例:json.load()讀取文件中JSON形式的字符串元素,轉(zhuǎn)化成Python類型。str_list=json.load(open('liststr.json'))print(str_list)運(yùn)行結(jié)果:{'city':'北京','name':'小蘭'}str_dict=json.load(open('dictstr.json'))print(str_dict)運(yùn)行結(jié)果:{'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形式的字符串元素,轉(zhuǎn)化成Python類型。與json.loads()的區(qū)別在于:一個(gè)讀取的是字符串,一個(gè)讀取的是文件。3.json.load()運(yùn)行結(jié)果1運(yùn)行結(jié)果2json模塊的基本使用將Python內(nèi)置類型序列化為json對(duì)象后寫入文件。與json.dumps()的區(qū)別在于寫入的是文件還是字符串。4.json.dump()示例:importjsondic={'country':'中國','city':'北京'}withopen("dict_str.json","w",encoding='utf-8')asf:json.dump(dic,f,ensure_ascii=False)運(yùn)行結(jié)果JSONPathJavascriptPythonPHPJavapipinstalljsonpathJSONPath是一種信息抽取類庫,是從JSON文檔中抽取指定信息的工具。提供多種語言實(shí)現(xiàn)版本,包括:JSONPath的安裝方法如下:JSONPath是一種信息抽取類庫,是從JSON文檔中抽取指定信息的工具,提供多種語言實(shí)現(xiàn)版本,包括:JavascriptPythonPHPJavaJSONPath的安裝方法如下:pipinstalljsonpathjsonpath與xpath的比較XPathJSONPath描述/$根節(jié)點(diǎn)。.@現(xiàn)行節(jié)點(diǎn)。/.or[]取子節(jié)點(diǎn)。..n/a取父節(jié)點(diǎn),JSONPath未支持。//..就是不管位置,選擇所有符合條件的節(jié)點(diǎn)。**匹配所有元素節(jié)點(diǎn)。@n/a根據(jù)屬性訪問,JSON不支持,因?yàn)镴SON是個(gè)key-value遞歸結(jié)構(gòu),不需要屬性訪問。[][]迭代器標(biāo)示(可以在里邊做簡單的迭代操作,如數(shù)組下標(biāo),根據(jù)內(nèi)容選值等)。|[,]支持迭代器中做多選。[]?()支持過濾操作。n/a()支持表達(dá)式計(jì)算。()n/a分組,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論