python解析json
2014-04-12 13:28
85 查看
'''写了个解析json的小函数
此函数用来遍历json串里边的每个key和alue
如果value仍然是json的话,会继续对其进行遍历,并且增加层深,便于展示
试用了递归的形式实现这个函数
输出结果如下:
![](http://images.cnitblog.com/i/603231/201404/121256409973373.jpg)
'''
#!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):
#判断传入的是否是json对象,不是json对象就返回异常
if(isinstance(json1,dict)):
#遍历json1对象里边的每个元素
for item in json1:
#如果item对应的value还是json对象,就调用这个函数进行递归,并且层深i加1,如果不是,直接z在else处进行打印
if (isinstance(json1[item],dict)):
#打印item和其对应的value
print("****"*i+"%s : %s"%(item,json1[item]))
#调用函数进行递归,i加1
hJson(json1[item],i=i+1)
else:
#打印
print("****"*i+"%s : %s"%(item,json1[item]))
#程序入口,对adict进行处理,第二个参数可以不传
esle:
print("json1 is not josn object!")
hJson(adict,0)
此函数用来遍历json串里边的每个key和alue
如果value仍然是json的话,会继续对其进行遍历,并且增加层深,便于展示
试用了递归的形式实现这个函数
输出结果如下:
![](http://images.cnitblog.com/i/603231/201404/121256409973373.jpg)
'''
#!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):
#判断传入的是否是json对象,不是json对象就返回异常
if(isinstance(json1,dict)):
#遍历json1对象里边的每个元素
for item in json1:
#如果item对应的value还是json对象,就调用这个函数进行递归,并且层深i加1,如果不是,直接z在else处进行打印
if (isinstance(json1[item],dict)):
#打印item和其对应的value
print("****"*i+"%s : %s"%(item,json1[item]))
#调用函数进行递归,i加1
hJson(json1[item],i=i+1)
else:
#打印
print("****"*i+"%s : %s"%(item,json1[item]))
#程序入口,对adict进行处理,第二个参数可以不传
esle:
print("json1 is not josn object!")
hJson(adict,0)
相关文章推荐
- Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
- python暴力破解含密码的zip压缩文件
- python time模块
- Python处理大文件
- Python基础教程(自己整理的)
- [python]使用xml.etree.ElementTree遍历xml所有节点
- Python学习笔记之数据类型总结
- python学习笔记(三) 实现switch,内建函数,模块和包
- python小爬虫SendKey自动刷博刷视频外挂
- Python学习笔记(3)事件驱动模型,frame, button
- Programming Python 3rd Edition 第三版 pdf chm下载
- [转]Python学习资料和教程pdf
- Python学习笔记(2)比特操作、类、文件操作
- Python学习笔记(1)变量、循环
- 用Python实现排序算法――插入排序
- 异常处理:你不可能总是对的 - 零基础入门学习Python032
- (转)]PYTHON Tkinter GUI
- python学习(常用技巧)
- python中的多进程
- python 的序列方法,元组和列表的方法。