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程序的循环的运行效率的原因
Apr 01 Python
python获取当前计算机cpu数量的方法
Apr 18 Python
简单了解Django模板的使用
Dec 20 Python
python一行sql太长折成多行并且有多个参数的方法
Jul 19 Python
python使用knn实现特征向量分类
Dec 26 Python
Python 给屏幕打印信息加上颜色的实现方法
Apr 24 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
Aug 10 Python
对Django中内置的User模型实例详解
Aug 16 Python
python两个_多个字典合并相加的实例代码
Dec 26 Python
python实现连连看游戏
Feb 14 Python
python环境下安装opencv库的方法
Mar 05 Python
在pycharm中创建django项目的示例代码
May 28 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
回首过去10年中最搞笑的10部动漫,哪一部让你节操尽碎?
2020/03/03 日漫
php面向对象全攻略 (八)重载新的方法
2009/09/30 PHP
PHP的switch判断语句的“高级”用法详解
2014/10/01 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
jquery实现的超出屏幕时把固定层变为定位层的代码
2010/02/23 Javascript
url 编码 js url传参中文乱码解决方案
2010/04/11 Javascript
JQury slideToggle闪烁问题及解决办法
2011/07/05 Javascript
查看图片(前进后退)功能实现js代码
2013/04/24 Javascript
node.js中的console.trace方法使用说明
2014/12/09 Javascript
javascript实现按回车键切换焦点
2015/02/09 Javascript
javascript跨域总结之window.name实现的跨域数据传输
2015/11/01 Javascript
深入解析JavaScript编程中的this关键字使用
2015/11/09 Javascript
微信小程序 input输入框详解及简单实例
2017/01/10 Javascript
Express + Node.js实现登录拦截器的实例代码
2017/07/01 Javascript
vue教程之toast弹框全局调用示例详解
2020/08/24 Javascript
vue-router实现tab标签页(单页面)详解
2017/10/17 Javascript
vue+webpack实现异步加载三种用法示例详解
2018/04/24 Javascript
vue-router 实现导航守卫(路由卫士)的实例代码
2018/09/02 Javascript
ES5新增数组的实现方法
2020/05/12 Javascript
Python ZipFile模块详解
2013/11/01 Python
Python实现在Linux系统下更改当前进程运行用户
2015/02/04 Python
Python的Django框架中forms表单类的使用方法详解
2016/06/21 Python
详解Python读取配置文件模块ConfigParser
2017/05/11 Python
Python中使用haystack实现django全文检索搜索引擎功能
2017/08/26 Python
Python实现的井字棋(Tic Tac Toe)游戏示例
2018/01/31 Python
Django框架实现分页显示内容的方法详解
2019/05/10 Python
python小程序基于Jupyter实现天气查询的方法
2020/03/27 Python
使用canvas绘制超炫时钟
2014/12/17 HTML / CSS
美国嘻哈首饰购物网站:Hip Hop Bling
2016/12/30 全球购物
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
乡村文明行动实施方案
2014/03/29 职场文书
房产买卖委托公证书
2014/04/04 职场文书
协议书样本
2014/04/23 职场文书
企业务虚会发言材料
2014/10/20 职场文书
工作经验交流材料
2014/12/30 职场文书
HTML5来实现本地文件读取和写入的实现方法
2021/05/25 HTML / CSS