python的json包位置及用法總結(jié)
JSON是一種獨(dú)立于語言的文本格式,用于數(shù)據(jù)交換,可以在不同語言間交換數(shù)據(jù)。
在高級版本的Python里自帶json模塊包,使用import json直接導(dǎo)入模塊。
JSON文本以“鍵/值”對形式定義,Python里的json模塊主要用于“Python數(shù)據(jù)與JSON格式的數(shù)據(jù)間相互轉(zhuǎn)換”。
JSON的數(shù)據(jù)類型:
數(shù)字(整數(shù)或浮點(diǎn)數(shù)),字符串(“ ”),邏輯值(True/False),數(shù)組([ ]),對象({ }),null。
json模塊里常用的四個(gè)方法是dump,dumps,load,loads。詳細(xì)的方法使用細(xì)節(jié)參考Python自帶幫助文件help(json.dump)。
Encode編碼為json對象:
json.dumps
Pyhton的Json模塊提供了把內(nèi)存中的對象序列化的方法。
dump的功能就是把Python對象encode為json對象,一個(gè)編碼過程。 注意json模塊提供了json.dumps和json.dump方法,區(qū)別是dump直接到文件,而dumps到一個(gè)字符串,這里的s可以理解為string。
#dumps方法 import json data = [{ '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對象編碼為string,還可以寫入文件。
但是不能把Python對象直接寫入文件,這樣會(huì)報(bào)錯(cuò)TypeError: expected a string or other character buffer object,需要將其序列化之后才可以寫入文件。
#dump方法 import json data = [ { 'a':'A', 'b':(2, 4), 'c':3.0 } ] with open('output.json','w') as fp: json.dump(data,fp)
Decode解碼為Python對象:
json.loads
以上給出了Python內(nèi)置對象dump為json對象的操作,反過來,那如何從json對象decode解碼為Python可以識(shí)別的對象呢?
用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ù)類型對照表
python數(shù)據(jù) | json數(shù)據(jù) |
---|---|
dict | object |
list, tuple | array |
str, unicode | string |
int, long, float | number |
True | true |
False | false |
None | null |
單引號(') | 雙引號(") |
到此這篇關(guān)于python的json包位置及用法總結(jié)的文章就介紹到這了,更多相關(guān)python的json包用法詳解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python3如何對urllib和urllib2進(jìn)行重構(gòu)
這篇文章主要介紹了Python3如何對urllib和urllib2進(jìn)行重構(gòu),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11python調(diào)用ffmpeg命令行工具便捷操作視頻示例實(shí)現(xiàn)過程
現(xiàn)在短視頻很流行,有很多視頻編輯軟件,功能豐富,而我們需要的只是裁剪功能,而且需要用編程的方式調(diào)用,那么最合適的莫過于ffmpeg了2021-11-11Python使用BeautifulSoup爬取網(wǎng)頁數(shù)據(jù)的操作步驟
在網(wǎng)絡(luò)時(shí)代,數(shù)據(jù)是最寶貴的資源之一,而爬蟲技術(shù)就是一種獲取數(shù)據(jù)的重要手段,Python 作為一門高效、易學(xué)、易用的編程語言,自然成為了爬蟲技術(shù)的首選語言之一,本文將介紹如何使用 BeautifulSoup 爬取網(wǎng)頁數(shù)據(jù),并提供詳細(xì)的代碼和注釋,幫助讀者快速上手2023-11-11用Python實(shí)現(xiàn)一個(gè)簡單的抽獎(jiǎng)小程序
最近開始學(xué)習(xí)python相關(guān)知識(shí),看最近有不少隨機(jī)抽獎(jiǎng)小程序,自己也做一個(gè)試試,下面這篇文章主要給大家介紹了關(guān)于如何利用Python實(shí)現(xiàn)一個(gè)簡單的抽獎(jiǎng)小程序的相關(guān)資料,需要的朋友可以參考下2023-05-05