json.load()與json.loads(),json.dump()與json.dumps()的區(qū)別,一目了然!!!
引言
很多時(shí)候,我們都會(huì)把json.load()與loads(),json.dump()與dumps()方法弄混淆,包括我也是,但是面試又會(huì)經(jīng)常面試到。為了一次性把這兩對(duì)方法的區(qū)別說清楚,我經(jīng)過思考和對(duì)比,終于找到了一個(gè)行之有效的方法,在這里與大家分享下。
1.json.load()與json.loads()的區(qū)別:
兩個(gè)方法相同點(diǎn)都是只有一個(gè)輸入?yún)?shù),輸出也都是把其他對(duì)象的數(shù)據(jù)類型轉(zhuǎn)化為python的數(shù)據(jù)類型。不同點(diǎn)是json.load()的輸入是文件類型,也就是讀取的是文件類型,而json.loads()的輸入是字符串類型。舉個(gè)簡(jiǎn)單的例子就是當(dāng)你用with open()打開文件時(shí),如果要使用json.loads()方法,就得先使用.read()或者readlines()把文件讀出來后,才能使用。而如果用json.load()就可以直接讀文件,并且得到的還是python數(shù)據(jù)類型,具體實(shí)現(xiàn)就不顯示了。
2.json.dump()與json.dumps()的區(qū)別:
首先,兩個(gè)方法的輸入?yún)?shù)數(shù)量就不一樣,json.dump()需要輸入兩個(gè)必須參數(shù),json.dumps()是輸入一個(gè)必須參數(shù)。其次是使用場(chǎng)景的區(qū)別,json.dumps()是用于將python對(duì)象轉(zhuǎn)換為json字符串,返回轉(zhuǎn)換后的json字符串。json.dump()適用于將python對(duì)象轉(zhuǎn)換為字符串并且寫入文件。說白了,就是json.dump()會(huì)自動(dòng)寫入文件。即當(dāng)你使用with open()將內(nèi)容寫入文件時(shí),不需要使用.write()方法了。
提示:json的數(shù)據(jù)都是雙引號(hào),而python的字典默認(rèn)是單引號(hào),所以將python寫入文件時(shí),最后先dumps()一下,再進(jìn)行保存,或者使用.dump()直接保存。使用這兩個(gè)方法保存時(shí),會(huì)自動(dòng)將單引號(hào)替換為雙引號(hào)。

浙公網(wǎng)安備 33010602011771號(hào)