python的json包位置及用法總結(jié)
JSON是一種獨(dú)立于語(yǔ)言的文本格式,用于數(shù)據(jù)交換,可以在不同語(yǔ)言間交換數(shù)據(jù)。
在高級(jí)版本的Python里自帶json模塊包,使用import json直接導(dǎo)入模塊。
JSON文本以“鍵/值”對(duì)形式定義,Python里的json模塊主要用于“Python數(shù)據(jù)與JSON格式的數(shù)據(jù)間相互轉(zhuǎn)換”。
JSON的數(shù)據(jù)類型:
數(shù)字(整數(shù)或浮點(diǎn)數(shù)),字符串(“ ”),邏輯值(True/False),數(shù)組([ ]),對(duì)象({ }),null。
json模塊里常用的四個(gè)方法是dump,dumps,load,loads。詳細(xì)的方法使用細(xì)節(jié)參考Python自帶幫助文件help(json.dump)。
Encode編碼為json對(duì)象:
json.dumps
Pyhton的Json模塊提供了把內(nèi)存中的對(duì)象序列化的方法。
dump的功能就是把Python對(duì)象encode為json對(duì)象,一個(gè)編碼過程。 注意json模塊提供了json.dumps和json.dump方法,區(qū)別是dump直接到文件,而dumps到一個(gè)字符串,這里的s可以理解為string。
#dumps方法import jsondata = [{ ’a’:’A’, ’b’:(2, 4), ’c’:3.0 }]print(’DATA:’, repr(data), type(data)) data_string = json.dumps(data)print(’JSON:’, data_string, type(data_string))
json.dump
不僅可以把Python對(duì)象編碼為string,還可以寫入文件。
但是不能把Python對(duì)象直接寫入文件,這樣會(huì)報(bào)錯(cuò)TypeError: expected a string or other character buffer object,需要將其序列化之后才可以寫入文件。
#dump方法import jsondata = [ { ’a’:’A’, ’b’:(2, 4), ’c’:3.0 } ]with open(’output.json’,’w’) as fp: json.dump(data,fp)
Decode解碼為Python對(duì)象:
json.loads
以上給出了Python內(nèi)置對(duì)象dump為json對(duì)象的操作,反過來(lái),那如何從json對(duì)象decode解碼為Python可以識(shí)別的對(duì)象呢?
用loads方法,當(dāng)然這個(gè)是基于string的;如果是文件,可以用json.load方法。
#loads方法decoded_json = json.loads(data_string)print(type(decoded_json),decoded_json)
json.load
#load方法with open(’output.json’) as fp: print(type(fp)) loaded_json = json.load(fp) print(type(loaded_json),loaded_json)
Python里open(‘文件路徑’,‘讀寫模式’)內(nèi)建函數(shù),作用是打開文件。
利用with代碼塊操作,便于管理上下文,當(dāng)with代碼塊執(zhí)行完時(shí),內(nèi)容會(huì)自動(dòng)關(guān)閉并釋放文件資源。
知識(shí)點(diǎn)補(bǔ)充:
數(shù)據(jù)類型對(duì)照表
python數(shù)據(jù) json數(shù)據(jù) dict object list, tuple array str, unicode string int, long, float number True true False false None null 單引號(hào)(’) 雙引號(hào)(')
到此這篇關(guān)于python的json包位置及用法總結(jié)的文章就介紹到這了,更多相關(guān)python的json包用法詳解內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. Intellij IDEA 2019 最新亂碼問題及解決必殺技(必看篇)2. JS繪圖Flot如何實(shí)現(xiàn)動(dòng)態(tài)可刷新曲線圖3. ASP.NET MVC獲取多級(jí)類別組合下的產(chǎn)品4. 未來(lái)的J2EE主流應(yīng)用框架:對(duì)比Spring和EJB35. Android自定義View實(shí)現(xiàn)掃描效果6. 關(guān)于HTML5的img標(biāo)簽7. PHP5.0正式發(fā)布 不完全兼容PHP4 新增多項(xiàng)功能8. Android Manifest中meta-data擴(kuò)展元素?cái)?shù)據(jù)的配置與獲取方式9. JS+css3實(shí)現(xiàn)幻燈片輪播圖10. 利用django創(chuàng)建一個(gè)簡(jiǎn)易的博客網(wǎng)站的示例
