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的几条建议分享
Feb 10 Python
Python Sleep休眠函数使用简单实例
Feb 02 Python
Python编程之字符串模板(Template)用法实例分析
Jul 22 Python
详解supervisor使用教程
Nov 21 Python
Python 中的range(),以及列表切片方法
Jul 02 Python
Win10下python3.5和python2.7环境变量配置教程
Sep 18 Python
python实现简易数码时钟
Feb 19 Python
在python中用url_for构造URL的方法
Jul 25 Python
python从zip中删除指定后缀文件(推荐)
Dec 05 Python
Python loguru日志库之高效输出控制台日志和日志记录
Mar 07 Python
python定时截屏实现
Nov 02 Python
pandas数据分组groupby()和统计函数agg()的使用
Mar 04 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
一个odbc连mssql分页的类
2006/10/09 PHP
PHP运行环境配置与开发环境的配置(图文教程)
2013/06/04 PHP
使用session判断用户登录用户权限(超简单)
2013/06/08 PHP
php实现的mongodb操作类实例
2015/04/03 PHP
php基于curl扩展制作跨平台的restfule 接口
2015/05/11 PHP
JS Timing
2007/04/21 Javascript
[原创]用javascript实现检测指定目录是否存在的方法
2008/01/12 Javascript
javascript 触发事件列表 比较不错
2009/09/03 Javascript
Jquery下判断Id是否存在的代码
2011/01/06 Javascript
纯JS实现的批量图片预览加载功能
2011/08/14 Javascript
jQuery中ready事件用法实例
2015/01/19 Javascript
jquery实现页面关键词高亮显示的方法
2015/03/12 Javascript
JavaScript中的原型prototype属性使用详解
2015/06/05 Javascript
JavaScript类型检测之typeof 和 instanceof 的缺陷与优化
2016/01/13 Javascript
jQuery Ajax使用FormData对象上传文件的方法
2016/09/07 Javascript
jquery判断页面网址是否有效的两种方法
2016/12/11 Javascript
Nodejs+Socket.io实现通讯实例代码
2017/02/13 NodeJs
Nodejs 获取时间加手机标识的32位标识实现代码
2017/03/07 NodeJs
jQuery实现按比例缩放图片的方法
2017/04/29 jQuery
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
2018/11/30 Javascript
JS内置对象和Math对象知识点详解
2020/04/03 Javascript
Typescript3.9 常用新特性一览(推荐)
2020/05/14 Javascript
JavaScript代码模拟鼠标自动点击事件示例
2020/08/07 Javascript
python实现apahce网站日志分析示例
2014/04/02 Python
Python实现的一个自动售饮料程序代码分享
2014/08/25 Python
介绍Python的Urllib库的一些高级用法
2015/04/30 Python
python使用正则筛选信用卡
2019/01/27 Python
Python 2/3下处理cjk编码的zip文件的方法
2019/04/26 Python
树莓派+摄像头实现对移动物体的检测
2019/06/22 Python
用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
2020/07/13 Python
PyQt实现计数器的方法示例
2021/01/18 Python
乐天旅游香港网站:日本饭店预订
2017/11/29 全球购物
实习生体会的自我评价范文
2013/11/28 职场文书
推荐信怎么写
2014/05/09 职场文书
《自己去吧》教学反思
2016/02/16 职场文书
运动会主持人开幕词
2016/03/04 职场文书