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脚本在Appium库上对移动应用实现自动化测试
Apr 17 Python
Python实现提取文章摘要的方法
Apr 21 Python
python中查看变量内存地址的方法
May 05 Python
将Python代码打包为jar软件的简单方法
Aug 04 Python
Python检测网站链接是否已存在
Apr 07 Python
python之matplotlib学习绘制动态更新图实例代码
Jan 23 Python
PyQt5显示GIF图片的方法
Jun 17 Python
使用python实现ftp的文件读写方法
Jul 02 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
Aug 17 Python
Python GUI自动化实现绕过验证码登录
Jan 10 Python
Python如何实现的二分查找算法
May 27 Python
详解pandas映射与数据转换
Jan 22 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使之能同时支持GIF和JPEG
2006/10/09 PHP
php从文件夹随机读取文件的方法
2015/06/01 PHP
php远程下载类分享
2016/04/13 PHP
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
2016/12/23 PHP
详解laravel passport OAuth2.0的4种模式
2019/11/04 PHP
JavaScript constructor和instanceof,JSOO中的一对欢喜冤家
2009/05/25 Javascript
javascript判断非数字的简单例子
2013/07/18 Javascript
jQuery快速上手:写jQuery与直接写JS的区别详细解析
2013/08/26 Javascript
Javascript玩转继承(三)
2014/05/08 Javascript
js获取json元素数量的方法
2015/01/27 Javascript
jQuery树形控件zTree使用小结
2016/08/02 Javascript
jQuery.ajax 跨域请求webapi设置headers的解决方案
2016/08/08 Javascript
浅谈js的ajax的异步和同步请求的问题
2016/10/07 Javascript
微信小程序 video详解及简单实例
2017/01/16 Javascript
Angular 4依赖注入学习教程之简介(一)
2017/06/04 Javascript
详解JavaScript按概率随机生成事件
2017/08/02 Javascript
vue计算属性computed的使用方法示例
2019/03/13 Javascript
Vue 图片压缩并上传至服务器功能
2020/01/15 Javascript
Python字符串格式化输出方法分析
2016/04/13 Python
Python Numpy,mask图像的生成详解
2020/02/19 Python
python实现简单的购物程序代码实例
2020/03/03 Python
Python数据结构dict常用操作代码实例
2020/03/12 Python
Python flask框架端口失效解决方案
2020/06/04 Python
澳大利亚连衣裙和女装在线:Esther
2017/11/11 全球购物
Lentiamo丹麦:购买便宜的隐形眼镜
2021/01/13 全球购物
医学专业大学生求职的自我评价
2013/11/27 职场文书
历史专业个人求职信范文
2013/12/07 职场文书
船舶专业个人求职信范文
2014/01/02 职场文书
《天安门广场》教学反思
2014/04/23 职场文书
罚站检讨书
2015/01/29 职场文书
余世维讲座观后感
2015/06/11 职场文书
导游词之澳门妈祖庙
2019/12/19 职场文书
Python实现Excel文件的合并(以新冠疫情数据为例)
2022/03/20 Python
Python中npy和mat文件的保存与读取
2022/04/24 Python
python区块链实现简版工作量证明
2022/05/25 Python
使用 CSS 构建强大且酷炫的粒子动画效果
2022/08/14 HTML / CSS