Python json解析庫(kù)jsonpath原理及使用示例
jsonpath
jsonpath 用于多層嵌套 json格式的 解析。
pip install jsonpath
JsonPath 描述 $ 根節(jié)點(diǎn) @ 現(xiàn)行節(jié)點(diǎn) .or[] 取子節(jié)點(diǎn) n/a 取父節(jié)點(diǎn),jsonpath為支持 .. 就是不管位置,選擇所有復(fù)合條件的條件 * 匹配所有元素節(jié)點(diǎn) n/a 根據(jù)屬性訪問(wèn),json不支持,因?yàn)閖son是個(gè)key-value遞歸結(jié)構(gòu),不需要數(shù)屬性訪問(wèn) [] 迭代器標(biāo)示(可以在里邊做簡(jiǎn)單的迭代操作,如數(shù)組下標(biāo),根據(jù)內(nèi)容選值等) [,] 支持迭代器中做多選 ?() 支持過(guò)濾操作 () 支持表達(dá)式計(jì)算 n/a 分組,JsonPath不支持
jsonpath使用示例
book_dict = { 'store': { 'book': [ { 'category': 'reference', 'author': 'Nigel Rees', 'title': 'Sayings of the Century', 'price': 8.95 }, { 'category': 'fiction', 'author': 'Evelyn Waugh', 'title': 'Sword of Honour', 'price': 12.99 }, { 'category': 'fiction', 'author': 'Herman Melville', 'title': 'Moby Dick', 'isbn': '0-553-21311-3', 'price': 8.99 }, { 'category': 'fiction', 'author': 'J. R. R. Tolkien', 'title': 'The Lord of the Rings', 'isbn': '0-395-19395-8', 'price': 22.99 } ], 'bicycle': { 'color': 'red', 'price': 19.95 } }}
JsonPath Result $.store.book[*].author store中的所有的book作者 $…author 所有的作者 $.store.* store下的所有元素 $.store…price store中的所有價(jià)錢(qián) $…book[2] 第三本書(shū) $…book[(@.length-1)] 最后一本書(shū) $…book[0,1] 取前兩本書(shū) $…book[?(@.isbn)] 獲取有jsbn的所有數(shù) $…book[?(@.price<10)] 獲取價(jià)格大于10 $…* 匹配所有數(shù)據(jù)
使用示例
$ 是查找的根節(jié)點(diǎn),傳參數(shù)是python的dict 類(lèi)型,當(dāng)查找到的時(shí)候返回一個(gè)list結(jié)果,查找失敗的時(shí)候返回 False.
import jsonpathresult = { 'code': 0, 'data': [ { 'age': 20, 'create_time': '2019-09-15', 'id': 1, 'mail': '283340479@qq.com', 'name': 'yoyo', 'sex': 'M' }, { 'age': 21, 'create_time': '2019-09-16', 'id': 2, 'mail': '123445@qq.com', 'name': 'yoyo111', 'sex': 'M' } ], 'msg': 'success!'}msg = jsonpath.jsonpath(result, ’$.msg’)print(msg) # 輸出結(jié)果 [’success!’]names = jsonpath.jsonpath(result, ’$..name’)print(names) # 輸出結(jié)果 [’yoyo’, ’yoyo111’]no = jsonpath.jsonpath(result, ’$..yoyo’)print(no) # 找不到是結(jié)果是 False
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. html5手機(jī)觸屏touch事件介紹2. jsp實(shí)現(xiàn)簡(jiǎn)單用戶7天內(nèi)免登錄3. JSP動(dòng)態(tài)實(shí)現(xiàn)web網(wǎng)頁(yè)登陸和注冊(cè)功能4. HTML基礎(chǔ)知識(shí)總結(jié)5. 怎樣打開(kāi)XML文件?xml文件如何打開(kāi)?6. 讓 Asp 與 XML 交互7. ASP基礎(chǔ)入門(mén)第二篇(ASP基礎(chǔ)知識(shí))8. xml文件的結(jié)構(gòu)解讀第1/2頁(yè)9. CSS3實(shí)例分享之多重背景的實(shí)現(xiàn)(Multiple backgrounds)10. 如何學(xué)習(xí)html的各種標(biāo)簽
