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通过函数属性实现全局变量的方法
May 16 Python
python实现简单购物商城
May 21 Python
Centos 升级到python3后pip 无法使用的解决方法
Jun 12 Python
Python如何获得百度统计API的数据并发送邮件示例代码
Jan 27 Python
12个Python程序员面试必备问题与答案(小结)
Jun 24 Python
python爬虫 urllib模块发起post请求过程解析
Aug 20 Python
python 单线程和异步协程工作方式解析
Sep 28 Python
在vscode中配置python环境过程解析
Sep 28 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
Jun 02 Python
详解Windows下PyCharm安装Numpy包及无法安装问题解决方案
Jun 18 Python
python对文档中元素删除,替换操作
Apr 02 Python
python标准库ElementTree处理xml
May 20 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
一个php作的文本留言本的例子(二)
2006/10/09 PHP
php GUID生成函数和类
2014/03/10 PHP
ThinkPHP中的三大自动简介
2014/08/22 PHP
利用PHP获取汉字首字母并且分组排序详解
2017/10/22 PHP
Jquery 快速构建可拖曳的购物车DragDrop
2009/11/30 Javascript
基于jQuery的弹出框插件
2012/03/18 Javascript
jQuery UI Autocomplete 1.8.16 中文输入修正代码
2012/04/16 Javascript
7款吸引人眼球的jQuery/CSS3特效实例分享
2013/04/25 Javascript
将input file的选择的文件清空的两种解决方案
2013/10/21 Javascript
Mac/Windows下如何安装Node.js
2013/11/22 Javascript
JavaScript自定义文本框光标
2017/03/05 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
2017/08/23 jQuery
Vue-Router实现组件间跳转的三种方法
2017/11/07 Javascript
基于node.js实现爬虫的讲解
2019/02/18 Javascript
node.JS的crypto加密模块使用方法详解(MD5,AES,Hmac,Diffie-Hellman加密)
2020/02/06 Javascript
微信小程序实现滑动操作代码
2020/04/23 Javascript
angula中使用iframe点击后不执行变更检测的问题
2020/05/10 Javascript
js实现无缝轮播图插件封装
2020/07/31 Javascript
Antd的Table组件嵌套Table以及选择框联动操作
2020/10/24 Javascript
vue3 watch和watchEffect的使用以及有哪些区别
2021/01/26 Vue.js
[57:37]EG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python多进程multiprocessing用法实例分析
2017/08/18 Python
windows下安装Python的XlsxWriter模块方法
2018/05/03 Python
Python 经典面试题 21 道【不可错过】
2018/09/21 Python
python打开使用的方法
2019/09/30 Python
系统管理员的职责包括那些?管理的对象是什么?
2016/09/20 面试题
园林毕业生自我鉴定范文
2013/12/29 职场文书
优秀员工年终发言演讲稿
2014/01/01 职场文书
给女朋友的道歉信
2014/01/10 职场文书
安全检查验收制度
2014/01/12 职场文书
毕业生工作求职信
2014/06/30 职场文书
2015年前台个人工作总结
2015/04/03 职场文书
python 实现定时任务的四种方式
2021/04/01 Python
使用CSS3实现按钮悬停闪烁动态特效代码
2021/08/30 HTML / CSS
TypeScript中条件类型精读与实践记录
2021/10/05 Javascript
docker 制作mysql镜像并自动安装
2022/05/20 Servers