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中实现的RC4算法
Feb 14 Python
Python实现比较扑克牌大小程序代码示例
Dec 06 Python
Python实现的凯撒密码算法示例
Apr 12 Python
python并发和异步编程实例
Nov 15 Python
Python实现的合并两个有序数组算法示例
Mar 04 Python
详解pandas删除缺失数据(pd.dropna()方法)
Jun 25 Python
django数据库自动重连的方法实例
Jul 21 Python
浅析PyTorch中nn.Linear的使用
Aug 18 Python
pytorch 数据处理:定义自己的数据集合实例
Dec 31 Python
python转化excel数字日期为标准日期操作
Jul 14 Python
Python 列表反转显示的四种方法
Nov 16 Python
变长双向rnn的正确使用姿势教学
May 31 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下防止单引号,双引号在接受页面转义的设置方法
2008/09/25 PHP
php smarty函数扩展
2010/03/15 PHP
PHP 根据IP地址控制访问的代码
2010/04/22 PHP
延长phpmyadmin登录时间的方法
2011/02/06 PHP
MySQL时间字段究竟使用INT还是DateTime的说明
2012/02/27 PHP
ajax返回值中有回车换行、空格的解决方法分享
2013/10/24 PHP
PHP登录环节防止sql注入的方法浅析
2014/06/30 PHP
PHP下载远程文件到本地存储的方法
2015/03/24 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
2017/08/10 PHP
PHP中localeconv()函数的用法
2019/03/26 PHP
PHP函数用法详解【初始化、嵌套、内置函数等】
2020/06/02 PHP
javascript innerHTML、outerHTML、innerText、outerText的区别
2008/11/24 Javascript
JS操作图片(增,删,改) 例子
2013/04/17 Javascript
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
2013/05/28 Javascript
微信小程序日历效果
2018/12/29 Javascript
JavaScript封闭函数及常用内置对象示例
2019/05/13 Javascript
解决 window.onload 被覆盖的问题方法
2020/01/14 Javascript
Python文件操作类操作实例详解
2014/07/11 Python
python使用多线程不断刷新网页的方法
2015/03/31 Python
用Python中的字典来处理索引统计的方法
2015/05/05 Python
Python实现股市信息下载的方法
2015/06/15 Python
Python中的id()函数指的什么
2017/10/17 Python
Python3学习urllib的使用方法示例
2017/11/29 Python
python进行TCP端口扫描的实现
2018/12/21 Python
Python统计时间内的并发数代码实例
2019/12/28 Python
python和C++共享内存传输图像的示例
2020/10/27 Python
CSS3的resize属性使用初探
2015/09/27 HTML / CSS
美国球鞋寄卖网站:Stadium Goods
2018/05/09 全球购物
计算机专业学生的自我评价
2013/12/15 职场文书
医院辞职信范文
2014/01/17 职场文书
个人授权委托书
2014/04/03 职场文书
教师优秀党员事迹材料
2014/08/14 职场文书
2015年公司新年寄语
2014/12/08 职场文书
文明单位创建材料
2014/12/24 职场文书
体育个人工作总结
2015/02/09 职场文书
(开源)微信小程序+mqtt,esp8266温湿度读取
2021/04/02 Javascript