千鋒教育-做有情懷、有良心、有品質的職業(yè)教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > python解析json文件方法

python解析json文件方法

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-11-13 04:45:14 1699821914

python解析json文件方法

我們在獲取一份第三方的數據后,需要進行數據的分析,但發(fā)現它是json的文件形式并不能直接使用。這就需要用到解析的方法,我們在python中就可以完成這樣操作。下面就json說進行簡單說明,然后理清解析json文件的思路,最后把相關的解析代碼分享給大家,一起往下看具體內容。

1.json說明

json就是一種長得像嵌套字典的字符串。數據被“{}”和“[]”層層包裹,需要“拆包”才能拿到我們需要的數據。

兩種結構:

(1)“名稱/值”對的集合(Acollectionofname/valuepairs)。不同的編程語言中,它被理解為對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hashtable),有鍵列表(keyedlist),或者關聯數組(associativearray)。

(2)值的有序列表(Anorderedlistofvalues)。在大部分語言中,它被實現為數組(array),矢量(vector),列表(list),序列(sequence)。

2.解析思路

(1)新建兩個函數A和B。

(2)函數A處理字典數據,被調用后,判斷傳遞的參數,如果參數為字典,則調用自身;

(3)如果是列表或者元組,則調用列表處理函數B;

(4)函數B處理列表,被調用后,判斷傳遞的參數,如果參數為列表或者元組,則調用自身;

(5)如果是字典,則調用字典處理函數A。

3.實例

代碼中的get_target_value函數為A函數,_get_value為B函數。

#處理嵌套json文件中指定關鍵字

#處理字典值

defget_target_value(key,dic,tmp_list):

"""

:paramkey:目標key值

:paramdic:JSON數據

:paramtmp_list:用于存儲獲取的數據

:return:list

"""

ifnotisinstance(dic,dict)ornotisinstance(tmp_list,list):#對傳入數據進行格式校驗

return'argv[1]notandictorargv[-1]notanlist'

ifkeyindic.keys():

tmp_list.append(dic[key])#傳入數據存在則存入tmp_list

forvalueindic.values():#傳入數據不符合則對其value值進行遍歷

ifisinstance(value,dict):

get_target_value(key,value,tmp_list)#傳入數據的value值是字典,則直接調用自身

elifisinstance(value,(list,tuple)):

_get_value(key,value,tmp_list)#傳入數據的value值是列表或者元組,則調用_get_value

returntmp_list

#處理元組或列表值

def_get_value(key,val,tmp_list):

forval_inval:

ifisinstance(val_,dict):

get_target_value(key,val_,tmp_list)#傳入數據的value值是字典,則調用get_target_value

elifisinstance(val_,(list,tuple)):

_get_value(key,val_,tmp_list)

以上就是python解析json文件的方法,大家可以先對解析的流程進行理解,在弄清楚基本的步驟后,就可以展開上面的解析json操作啦。更多Python學習教程請關注IT培訓機構:千鋒教育。

tags: python培訓
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業(yè)內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT