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格式化css文件的方法
Mar 10 Python
python开发中module模块用法实例分析
Nov 12 Python
浅谈django中的认证与登录
Oct 31 Python
python 返回列表中某个值的索引方法
Nov 07 Python
python 图片去噪的方法示例
Jul 09 Python
Django如何简单快速实现PUT、DELETE方法
Jul 24 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
Aug 05 Python
Python 异步协程函数原理及实例详解
Nov 13 Python
Python模拟登录之滑块验证码的破解(实例代码)
Nov 18 Python
解决TensorFlow GPU版出现OOM错误的问题
Feb 03 Python
Python实现对adb命令封装
Mar 06 Python
Python参数传递实现过程及原理详解
May 14 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基础学习笔记
2007/03/18 PHP
PHP Socket 编程
2010/04/09 PHP
PHP 事务处理数据实现代码
2010/05/13 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
2015/03/04 PHP
PHP 接入支付宝即时到账功能
2016/09/18 PHP
PHP串行化与反串行化实例分析
2016/12/27 PHP
PHP7 参数处理机制修改
2021/03/09 PHP
js DOM的学习笔记
2011/12/22 Javascript
window.open的页面如何刷新(父页面)上层页面
2012/12/28 Javascript
jQuery实现带动画效果的二级下拉导航方法
2015/03/11 Javascript
jQuery实现自动与手动切换的滚动新闻特效代码分享
2015/08/27 Javascript
使用OpenLayers3 添加地图鼠标右键菜单
2015/12/29 Javascript
用director.js实现前端路由使用实例
2017/01/27 Javascript
深入理解AngularJS中的ng-bind-html指令
2017/03/27 Javascript
Bootstrap 模态框(Modal)带参数传值实例
2017/08/20 Javascript
js中的闭包学习心得
2018/02/06 Javascript
[02:52]DOTA2新手基础教程 米波
2014/01/21 DOTA
[04:23]DOTA2上海特锦赛小组赛第一日 TOP10精彩集锦
2016/02/27 DOTA
[01:01]2020完美高校联赛(秋)西安落幕
2021/03/11 DOTA
[49:31]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第二场 1月29日
2021/03/11 DOTA
python 基础学习第二弹 类属性和实例属性
2012/08/27 Python
python if not in 多条件判断代码
2016/09/21 Python
Python分析最近大火的网剧《隐秘的角落》
2020/07/02 Python
Python依赖包迁移到断网环境操作
2020/07/13 Python
可以随进度显示不同颜色的css3进度条分享
2014/04/11 HTML / CSS
大女孩胸罩:Big Girls Bras
2016/12/15 全球购物
英国女性时尚品牌:Apricot
2018/12/04 全球购物
漫威玩具服装及周边商品官方购物网站:Marvel Shop
2019/05/11 全球购物
Currentbody澳大利亚:美容仪专家
2019/11/11 全球购物
给排水专业应届生求职信
2013/10/12 职场文书
应用数学自荐书范文
2013/11/24 职场文书
小学生教师节演讲稿
2014/09/03 职场文书
贫困证明模板(3篇)
2014/09/16 职场文书
优秀教师推荐材料
2014/12/16 职场文书
家长意见和建议怎么写
2015/06/04 职场文书
CSS实现多个元素在盒子内两端对齐效果
2021/03/30 HTML / CSS