Python解析json文件相關(guān)知識(shí)學(xué)習(xí)
JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個(gè)子集。 JSON采用完全獨(dú)立于語言的文本格式,但是也使用了類似于C語言家族的習(xí)慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數(shù)據(jù)交換語言。易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成。
今天用python解析一個(gè)文本文件,格式如下:
[
{
"Key":"android.permission.ACCESS_CHECKIN_PROPERTIES",
"Title":"訪問檢入屬性",
"Memo":"允許對(duì)檢入服務(wù)上傳的屬性進(jìn)行讀/寫訪問。普通應(yīng)用程序不能使用此權(quán)限。",
"Level":0
},
{
"Key":"android.permission.ACCESS_COARSE_LOCATION",
"Title":"大概位置",
"Memo":"訪問大概的位置源(例如蜂窩網(wǎng)絡(luò)數(shù)據(jù)庫)以確定手機(jī)的大概位置(如果可以)。惡意應(yīng)用程序可借此確定您所處的大概位置。",
"Level":1
},
{
"Key":"android.permission.ACCESS_COARSE_LOCATION",
"Title":"大概位置",
"Memo":"訪問大概的位置源(例如蜂窩網(wǎng)絡(luò)數(shù)據(jù)庫)以確定手機(jī)的大概位置(如果可以)。惡意應(yīng)用程序可借此確定您所處的大概位置。",
"Level":1
}
]
開始采用open('filepath').readlines()的方法讀取,這樣讀取的內(nèi)容都存取到一個(gè)列表中,但是我要取每一個(gè){}中的內(nèi)容取不到,于是考慮用split(',')的方法分離開來,結(jié)果把每一個(gè){}里面的內(nèi)容也根據(jù)","分開了。后來請(qǐng)教了網(wǎng)友,說用json方式讀取。于是采用以下方式:
#-*-encoding:utf--*- import json f = file(r'C:\Users\Tim\Desktop\test.json') jsonobj = json.load(f) #列表用序號(hào)來查詢 print jsonobj[]['Memo'] f.close
運(yùn)行之后報(bào)以下錯(cuò)誤:
ValueError: No JSON object could be decoded
重新將json文件以UTF8無BOM方式保存了一下,運(yùn)行成功了。
另外,對(duì)于讀取json string可以用以下方式:
s = json.loads('{"name":"test", "type":{"name":"seq", "parameter":["", ""]}}')
print s
print s.keys()
print s["name"]
print s["type"]["name"]
print s["type"]["parameter"][]
以上內(nèi)容給大家介紹了Python解析json文件相關(guān)知識(shí),希望對(duì)大家有所幫助!
- JSON 入門教程基礎(chǔ)篇 json入門學(xué)習(xí)筆記
- javascript學(xué)習(xí)之json入門
- Ajax與JSON的一些學(xué)習(xí)總結(jié)
- JSON學(xué)習(xí)筆記
- JSON 教程 json入門學(xué)習(xí)筆記
- JSON stringify方法原理及實(shí)例解析
- Java使用JSON傳遞字符串注意事項(xiàng)解析
- 10分鐘掌握XML、JSON及其解析
- Java解析JSON數(shù)據(jù)時(shí)報(bào)錯(cuò)問題解決方案
- javascript解析json格式的數(shù)據(jù)方法詳解
- 10分鐘學(xué)會(huì)js處理json的常用方法
相關(guān)文章
Python移動(dòng)測(cè)試開發(fā)subprocess模塊項(xiàng)目實(shí)戰(zhàn)
這篇文章主要為大家介紹了Python移動(dòng)測(cè)試開發(fā)subprocess模塊項(xiàng)目實(shí)戰(zhàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07
Python+Plotly繪制精美的數(shù)據(jù)分析圖
Plotly?是目前已知的Python最強(qiáng)繪圖庫,比Echarts還強(qiáng)大許多。它的繪制通過生成一個(gè)web頁面完成,并且支持調(diào)整圖像大小,動(dòng)態(tài)調(diào)節(jié)參數(shù)。本文將利用Plotly繪制精美的數(shù)據(jù)分析圖,感興趣的可以了解一下2022-05-05
將python字符串轉(zhuǎn)化成長表達(dá)式的函數(shù)eval實(shí)例
這篇文章主要介紹了將python字符串轉(zhuǎn)化成長表達(dá)式的函數(shù)eval實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05
python實(shí)現(xiàn)將pvr格式轉(zhuǎn)換成pvr.ccz的方法
這篇文章主要介紹了python實(shí)現(xiàn)將pvr格式轉(zhuǎn)換成pvr.ccz的方法,涉及Python實(shí)現(xiàn)格式轉(zhuǎn)換的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04
jupyter運(yùn)行時(shí)左邊一直出現(xiàn)*號(hào)問題及解決
這篇文章主要介紹了jupyter運(yùn)行時(shí)左邊一直出現(xiàn)*號(hào)問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
Python隨機(jī)生成一個(gè)6位的驗(yàn)證碼代碼分享
這篇文章主要介紹了Python隨機(jī)生成一個(gè)6位的驗(yàn)證碼代碼分享,本文直接給出代碼實(shí)例,需要的朋友可以參考下2015-03-03
解決python的空格和tab混淆而報(bào)錯(cuò)的問題
這篇文章主要介紹了解決python的空格和tab混淆而報(bào)錯(cuò)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-02-02
Python實(shí)現(xiàn)動(dòng)態(tài)添加類的屬性或成員函數(shù)的解決方法
這篇文章主要介紹了Python實(shí)現(xiàn)動(dòng)態(tài)添加類的屬性或成員函數(shù)的解決方法,在類似插件開發(fā)的時(shí)候會(huì)比較有用,需要的朋友可以參考下2014-07-07

