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 相关文章推荐
在Linux中通过Python脚本访问mdb数据库的方法
May 06 Python
在Python的Django框架中编写编译函数
Jul 20 Python
Python使用Matplotlib实现雨点图动画效果的方法
Dec 23 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
Nov 14 Python
python SQLAlchemy 中的Engine详解
Jul 04 Python
Python 3 实现定义跨模块的全局变量和使用教程
Jul 07 Python
python和c语言哪个更适合初学者
Jun 22 Python
Python实现迪杰斯特拉算法过程解析
Sep 18 Python
Python监听剪切板实现方法代码实例
Nov 11 Python
Pytest测试框架基本使用方法详解
Nov 25 Python
Python实现给PDF添加水印的方法
Jan 25 Python
Python Django框架介绍之模板标签及模板的继承
May 27 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
smarty模板嵌套之include与fetch性能测试
2010/12/05 PHP
php使用imagick模块实现图片缩放、裁剪、压缩示例
2014/04/17 PHP
原生js实现查找/添加/删除/指定元素的class
2013/04/12 Javascript
JQuery实现鼠标滑过显示导航下拉列表
2013/09/12 Javascript
一个奇葩的最短的 IE 版本判断JS脚本
2014/05/28 Javascript
前端轻量级MVC框架CanJS详解
2014/09/26 Javascript
jQuery插件fullPage.js实现全屏滚动效果
2016/12/02 Javascript
简单理解js的冒泡排序
2016/12/19 Javascript
深入理解vue Render函数
2017/07/19 Javascript
jQuery Ajax 实现分页 kkpager插件实例代码
2017/08/10 jQuery
js实现图片上传并预览功能
2018/08/06 Javascript
如何利用ES6进行Promise封装总结
2019/02/11 Javascript
JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】
2019/07/11 jQuery
layui layer select 选择被遮挡的解决方法
2019/09/21 Javascript
JS工厂模式开发实践案例分析
2019/10/17 Javascript
详谈vue中router-link和传统a链接的区别
2020/07/22 Javascript
[02:45]DOTA2英雄敌法师基础教程
2013/11/25 DOTA
[01:14:34]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第一局
2016/02/28 DOTA
详解使用Python处理文件目录的相关方法
2015/10/16 Python
Python+django实现文件下载
2016/01/17 Python
使用python编写udp协议的ping程序方法
2018/04/22 Python
Python数据结构与算法(几种排序)小结
2019/06/22 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
2020/03/24 Python
一款基于css3和jquery实现的动画显示弹出层按钮教程
2015/01/04 HTML / CSS
美国皮靴公司自1863年:The Frye Company
2016/11/30 全球购物
阿波罗盒子:Apollo Box
2017/08/14 全球购物
最畅销的视频游戏享受高达90%的折扣:CDKeys
2020/02/10 全球购物
化学教师教学反思
2014/01/17 职场文书
《骆驼和羊》教学反思
2014/02/27 职场文书
2014年党员承诺书范文
2014/05/20 职场文书
高一课前三分钟演讲稿
2014/09/13 职场文书
推广普通话共筑中国梦演讲稿
2014/09/21 职场文书
会议欢迎词
2015/01/23 职场文书
烟台的海导游词
2015/02/02 职场文书
2015年基建工作总结范文
2015/05/23 职场文书
2016形势与政策学习心得体会
2016/01/12 职场文书