Python json模块使用实例


Posted in Python onApril 11, 2015

实际上JSON就是Python字典的字符串表示,但是字典作为一个复杂对象是无法直接传递,所以需要将其转换成字符串形式.转换的过程也是一种序列化过程.

用json.dumps序列化为json字符串格式

>>> import json

>>> dic {'Connection': ['keep-alive'], 'Host': ['127.0.0.1:5000'], 'Cache-Control': ['max-age=0']}

>>> jdict = json.dumps({'Connection': ['keep-alive'], 'Host': ['127.0.0.1:5000'], 'Cache-Control': ['max-age=0']})

>>> print jdict

{"Connection": ["keep-alive"], "Host": ["127.0.0.1:5000"], "Cache-Control": ["max-age=0"]}

虽然dic和jdict打印的字符串是相同的,但是实际它们的类型是不一样的.dic是字典类型,jdict是字符串类型
<type 'dict'>

>>> type(jdic)

>>> type(jdict)

<type 'str'>

可以用json.dumps序列化列表为json字符串格式
>>> list = [1, 4, 3, 2, 5] 

>>> jlist = json.dumps(list)

>>> print jlist

[1, 4, 3, 2, 5]

list和jlist类型同样是不一样的
>>> type(list)

<type 'list'>

>>> type(jlist)

<type 'str'>

json.dumps有如下多种参数

json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)

key排序
>>> print json.dumps({1:'a', 4:'b', 3:'c', 2:'d', 5:'f'},sort_keys=True)

{"1": "a", "2": "d", "3": "c", "4": "b", "5": "f"}

格式对齐

>>> print json.dumps({'4': 5, '6': 7}, sort_keys=True, indent=4)

{

    "4": 5, 

    "6": 7

}

指定分隔符
>>> json.dumps([1,2,3,{'4': 5, '6': 7}], separators=(',',':'))

'[1,2,3,{"4":5,"6":7}]'

用json.dump序列化到文件对象中
>>> json.dump({'4': 5, '6': 7}, open('savejson.txt', 'w'))

>>> print open('savejson.txt').readlines()

['{"4": 5, "6": 7}']

json.dump参数和json.dumps类似

json.dump(obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)

json.loads把json字符串反序列化为python对象

函数签名为:

json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

注意这里的”s”必须是字符串,反序列化后为unicode字符
>>> dobj = json.loads('{"name":"aaa", "age":18}')

>>> type(dobj)

<type 'dict'>

>>> print dobj

{u'age': 18, u'name': u'aaa'}

json.load从文件中反序列化为python对象

签名为:

json.load(fp[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

实例:
>>> fobj = json.load(open('savejson.txt'))

>>> print fobj

{u'4': 5, u'6': 7}

>>> type(fobj)

<type 'dict'>
Python 相关文章推荐
Python中文件操作简明介绍
Apr 13 Python
python基础教程之Filter使用方法
Jan 17 Python
python中MethodType方法介绍与使用示例
Aug 03 Python
Python实现两款计算器功能示例
Dec 19 Python
python使用xslt提取网页数据的方法
Feb 23 Python
Python3爬虫之urllib携带cookie爬取网页的方法
Dec 28 Python
Python基础之循环语句用法示例【for、while循环】
Mar 23 Python
人工神经网络算法知识点总结
Jun 11 Python
基于pygame实现童年掌机打砖块游戏
Feb 25 Python
python使用gdal对shp读取,新建和更新的实例
Mar 10 Python
详解python模块pychartdir安装及导入问题
Oct 22 Python
关于Numpy之repeat、tile的用法总结
Jun 02 Python
Python进程通信之匿名管道实例讲解
Apr 11 #Python
Python multiprocessing模块中的Pipe管道使用实例
Apr 11 #Python
Python httplib模块使用实例
Apr 11 #Python
初步探究Python程序的执行原理
Apr 11 #Python
Python与shell的3种交互方式介绍
Apr 11 #Python
Python函数参数类型*、**的区别
Apr 11 #Python
Python中的多重装饰器
Apr 11 #Python
You might like
2.PHP入门
2006/10/09 PHP
php字符串分割函数explode的实例代码
2013/02/07 PHP
php实现斐波那契数列的简单写法
2014/07/19 PHP
JavaScript静态的动态
2006/09/18 Javascript
几个高效,简洁的字符处理函数
2007/04/12 Javascript
JavaScript几种形式的树结构菜单
2010/05/10 Javascript
菜鸟javascript基础资料整理3 正则
2010/12/06 Javascript
jQuery操作select的实例代码
2012/06/14 Javascript
关于extjs treepanel复选框选中父节点与子节点的问题
2013/04/02 Javascript
关于js注册事件的常用方法
2013/04/03 Javascript
javaScript 页面自动加载事件详解
2014/02/10 Javascript
jquery插件之定时查询待处理任务数量
2014/05/01 Javascript
如何编写高质量JS代码
2014/12/28 Javascript
jQuery实现的导航下拉菜单效果示例
2016/09/05 Javascript
Bootstrap popover用法详解
2016/12/22 Javascript
JS编写函数实现对身份证号码最后一位的验证功能
2016/12/29 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
2017/06/22 Javascript
jQuery回调方法使用示例
2017/06/26 jQuery
AugularJS从入门到实践(必看篇)
2017/07/10 Javascript
JavaScript函数Call、Apply原理实例解析
2020/02/17 Javascript
Node.js 中如何收集和解析命令行参数
2021/01/08 Javascript
python通过BF算法实现关键词匹配的方法
2015/03/13 Python
python初学之用户登录的实现过程(实例讲解)
2017/12/23 Python
Linux CentOS Python开发环境搭建教程
2018/11/28 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
2019/04/26 Python
Python+PyQT5的子线程更新UI界面的实例
2019/06/14 Python
使用 Python ssh 远程登陆服务器的最佳方案
2020/03/06 Python
基于IE10/HTML5 开发
2013/04/22 HTML / CSS
美国网上花店:JustFlowers
2017/02/12 全球购物
留学推荐信中文范文三篇
2014/01/25 职场文书
5.12护士节演讲稿
2014/04/30 职场文书
软件项目开发计划书
2014/05/01 职场文书
自信主题班会
2015/08/14 职场文书
python3实现常见的排序算法(示例代码)
2021/07/04 Python
Linux、ubuntu系统下查看显卡型号、显卡信息详解
2022/04/07 Servers
详解Android中的TimePickerView(时间选择器)的用法
2022/04/30 Java/Android