python中解析json格式文件的方法示例
前言
JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個子集。 JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習(xí)慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數(shù)據(jù)交換語言。易于人閱讀和編寫,同時也易于機(jī)器解析和生成。
本文主要介紹的是python中解析json格式文件的方法,解析json文件無非編碼和解碼,這里我們用了python下自帶的json模塊。當(dāng)然還要結(jié)合python本身特有的dict類型的操作。下面來看看詳細(xì)的介紹吧。
編碼
編碼用到的是json.dumps()
函數(shù),將字典轉(zhuǎn)化為json對象。
import json data = [{'a':"A",'b':(2,4),'c':3.0}] #list對象 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ù)是沒有順序存儲的 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]}]
編碼和解碼的過程中,元組會被變成無次序的列表,而字典的次序也并不能保證不變。
現(xiàn)在,處理json格式的重點便成了正確處理dict類型數(shù)據(jù)了。
常見錯誤
python的json模塊不支持單引號,所以類似"{'a':'A','b':[2,4],'c':3.0}"
的字符串是會報以下錯誤的:
ValueError: Expecting property name: line 1 column 2 (char 1)
這時候我們只需要把他單雙引號互換即可:
'{"a":"A","b":[2,4],"c":3.0}'
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
Python實現(xiàn)賬號密碼輸錯三次即鎖定功能簡單示例
這篇文章主要介紹了Python實現(xiàn)賬號密碼輸錯三次即鎖定功能,結(jié)合實例形式分析了Python文件讀取、流程控制、數(shù)據(jù)判斷等相關(guān)操作技巧,需要的朋友可以參考下2019-03-03徹底吃透理解Python基礎(chǔ)33個關(guān)鍵字詳細(xì)教程
這篇文章主要為大家介紹了徹底吃透理解Python中33個關(guān)鍵字的詳細(xì)教程,有需要打好Python基礎(chǔ)的同學(xué)可以借鑒參考下,希望能成為您成功路上的一塊墊腳石2021-10-10Pygame出現(xiàn)播放背景音樂卡頓的問題分析及解決(發(fā)生在win10更新至win11后)
Pygame是常用的游戲開發(fā)庫之一,然而在使用Pygame的過程中,卻出現(xiàn)了播放背景音樂卡頓的問題,表現(xiàn)為咯咯咯的噪音,所以本文記錄了Pygame出現(xiàn)播放背景音樂卡頓的問題分析及解決,需要的朋友可以參考下2024-02-02Python讀取xlsx文件報錯:xlrd.biffh.XLRDError:?Excel?xlsx?file;no
這篇文章主要給大家介紹了關(guān)于Python庫xlrd中的xlrd.open_workbook()函數(shù)讀取xlsx文件報錯:xlrd.biffh.XLRDError:?Excel?xlsx?file;not?supported問題解決的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08Django之使用celery和NGINX生成靜態(tài)頁面實現(xiàn)性能優(yōu)化
這篇文章主要介紹了Django之使用celery和NGINX生成靜態(tài)頁面實現(xiàn)性能優(yōu)化,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10python實現(xiàn)ssh及sftp功能(實例代碼)
這篇文章主要介紹了python實現(xiàn)ssh及sftp功能 ,本文分步驟通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03