python中解析json格式文件的方法示例
前言
JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個(gè)子集。 JSON采用完全獨(dú)立于語(yǔ)言的文本格式,但是也使用了類似于C語(yǔ)言家族的習(xí)慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數(shù)據(jù)交換語(yǔ)言。易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成。
本文主要介紹的是python中解析json格式文件的方法,解析json文件無(wú)非編碼和解碼,這里我們用了python下自帶的json模塊。當(dāng)然還要結(jié)合python本身特有的dict類型的操作。下面來(lái)看看詳細(xì)的介紹吧。
編碼
編碼用到的是json.dumps()函數(shù),將字典轉(zhuǎn)化為json對(duì)象。
import json
data = [{'a':"A",'b':(2,4),'c':3.0}] #list對(duì)象
print "DATA:",repr(data)
data_string = json.dumps(data)#dumps函數(shù)
print "JSON:",data_string
輸出的結(jié)果是:
DATA: [{'a':'A','c':3.0,'b':(2,4)}] #python的dict類型的數(shù)據(jù)是沒(méi)有順序存儲(chǔ)的
JSON: [{"a":"A","c":3.0,"b":[2,4]}]
解碼
解碼用json.loads()函數(shù),將json格式轉(zhuǎn)化為dict。
import json
data = '{"a":"A","b":[2,4],"c":3.0}' #json格式
decoded = json.loads(data)
print "DECODED:",decoded
輸出的結(jié)果是
DECODED: [{u'a': u'A', u'c': 3.0, u'b': [2, 4]}]
編碼和解碼的過(guò)程中,元組會(huì)被變成無(wú)次序的列表,而字典的次序也并不能保證不變。
現(xiàn)在,處理json格式的重點(diǎn)便成了正確處理dict類型數(shù)據(jù)了。
常見(jiàn)錯(cuò)誤
python的json模塊不支持單引號(hào),所以類似"{'a':'A','b':[2,4],'c':3.0}"的字符串是會(huì)報(bào)以下錯(cuò)誤的:
ValueError: Expecting property name: line 1 column 2 (char 1)
這時(shí)候我們只需要把他單雙引號(hào)互換即可:
'{"a":"A","b":[2,4],"c":3.0}'
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
通過(guò)python實(shí)現(xiàn)Google的精準(zhǔn)搜索功能
這篇文章主要介紹了通過(guò)python實(shí)現(xiàn)Google的精準(zhǔn)搜索功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-05-05
python opencv鼠標(biāo)畫點(diǎn)之cv2.drawMarker()函數(shù)
這篇文章主要給大家介紹了關(guān)于python opencv鼠標(biāo)畫點(diǎn)之cv2.drawMarker()函數(shù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用opencv具有一定的參考下學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-10-10
簡(jiǎn)單實(shí)現(xiàn)python爬蟲(chóng)功能
這篇文章主要介紹了python實(shí)現(xiàn)簡(jiǎn)單爬蟲(chóng)功能的相關(guān)資料,感興趣的小伙伴們可以參考一下2015-12-12
Python使用Matplotlib繪制散點(diǎn)趨勢(shì)線的代碼詳解
Matplotlib是一個(gè)用于數(shù)據(jù)可視化的強(qiáng)大Python庫(kù),其基本功能之一是創(chuàng)建帶有趨勢(shì)線的散點(diǎn)圖,散點(diǎn)圖對(duì)于可視化變量之間的關(guān)系非常有用,本文將指導(dǎo)您使用Matplotlib繪制散點(diǎn)趨勢(shì)線的過(guò)程,涵蓋線性和多項(xiàng)式趨勢(shì)線,需要的朋友可以參考下2025-01-01
tensorflow 用矩陣運(yùn)算替換for循環(huán) 用tf.tile而不寫for的方法
今天小編就為大家分享一篇tensorflow 用矩陣運(yùn)算替換for循環(huán) 用tf.tile而不寫for的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07

