'''寫了個解析json的小函數
此函數用來遍歷json串里邊的每個key和alue
如果value仍然是json的話,會繼續對其進行遍歷,並且增加層深,便於展示
試用了遞歸的形式實現這個函數
輸出結果如下:

'''
#!coding:utf-8
#導入json模塊,你也可以用simplejson,一個第三模塊,比較好用
import json
#定義一個dict對象,並有些value還是以json的形式出現,形式如下
adict={"xiaoqiangk":"xiaoqiangv","xiaofeik":"xiaofeiv","xiaofeis":{"xiaofeifk":"xiaofeifv","xiaofeimk":{"xiaoqik":"xiaoqiv","xiaogou":{"xiaolei":"xiaolei"}}},"xiaoer":{"xiaoyuk":"xiaoyuv"}}
#定義一個函數,用來處理json,傳入json1對象,層深初始為0,對其進行遍歷
def hJson(json1,i=0):
adict={"xiaoqiangk":"xiaoqiangv","xiaofeik":"xiaofeiv","xiaofeis":{"xiaofeifk":"xiaofeifv","xiaofeimk":{"xiaoqik":"xiaoqiv","xiaogou":{"xiaolei":"xiaolei"}}},"xiaoer":{"xiaoyuk":"xiaoyuv"}}
#定義一個函數,用來處理json,傳入json1對象,層深初始為0,對其進行遍歷
def hJson(json1,i=0):
#判斷傳入的是否是json對象,不是json對象就返回異常
if(isinstance(json1,dict)):
#遍歷json1對象里邊的每個元素
for item in json1:
for item in json1:
#如果item對應的value還是json對象,就調用這個函數進行遞歸,並且層深i加1,如果不是,直接z在else處進行打印
if (isinstance(json1[item],dict)):
if (isinstance(json1[item],dict)):
#打印item和其對應的value
print("****"*i+"%s : %s"%(item,json1[item]))
print("****"*i+"%s : %s"%(item,json1[item]))
#調用函數進行遞歸,i加1
hJson(json1[item],i=i+1)
else:
hJson(json1[item],i=i+1)
else:
#打印
print("****"*i+"%s : %s"%(item,json1[item]))
#程序入口,對adict進行處理,第二個參數可以不傳
print("****"*i+"%s : %s"%(item,json1[item]))
#程序入口,對adict進行處理,第二個參數可以不傳
esle:
print("json1 is not josn object!")
hJson(adict,0)