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实现从ftp服务器下载文件的方法
Apr 30 Python
Python类的定义、继承及类对象使用方法简明教程
May 08 Python
Python实现调度算法代码详解
Dec 01 Python
Python进度条实时显示处理进度的示例代码
Jan 30 Python
Python实现替换文件中指定内容的方法
Mar 19 Python
python函数定义和调用过程详解
Feb 09 Python
python输出pdf文档的实例
Feb 13 Python
python利用opencv实现SIFT特征提取与匹配
Mar 05 Python
三步解决python PermissionError: [WinError 5]拒绝访问的情况
Apr 22 Python
python 获取字典键值对的实现
Nov 12 Python
django inspectdb 操作已有数据库数据的使用步骤
Feb 07 Python
Pytorch中使用ImageFolder读取数据集时忽略特定文件
Mar 23 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
Get或Post提交值的非法数据处理
2006/10/09 PHP
PHP+javascript模拟Matrix画面
2006/10/09 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
2015/05/12 PHP
PHP的消息通信机制测试实例
2016/11/10 PHP
PHP实现执行外部程序的方法详解
2017/08/17 PHP
PHP INT类型在内存中占字节详解
2019/07/20 PHP
php简单检测404页面的方法示例
2019/08/23 PHP
JavaScript 函数式编程的原理
2009/10/16 Javascript
js正文内容高亮效果的实现方法
2013/06/30 Javascript
js实现广告漂浮效果的小例子
2013/07/02 Javascript
简单的两种Extjs formpanel加载数据的方式
2013/11/09 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
jquery根据name属性查找的小例子
2013/11/21 Javascript
jquery改变tr背景色的示例代码
2013/12/28 Javascript
javascript实现的一个随机点名功能
2014/08/26 Javascript
详解JavaScript for循环中发送AJAX请求问题
2020/06/23 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
2016/04/07 Javascript
预防网页挂马的方法总结
2016/11/03 Javascript
JavaScript数据结构中串的表示与应用实例
2017/04/12 Javascript
深入讲解xhr(XMLHttpRequest)/jsonp请求之abort
2017/07/26 Javascript
Js经典案例的实例代码
2018/05/10 Javascript
react实现点击选中的li高亮的示例代码
2018/05/24 Javascript
js JSON.stringify()基础详解
2019/06/19 Javascript
js、jquery实现列表模糊搜索功能过程解析
2020/03/27 jQuery
Python文件监听工具pyinotify与watchdog实例
2018/10/15 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
2018/10/29 Python
Python魔法方法详解
2019/02/13 Python
python数据预处理 :数据抽样解析
2020/02/24 Python
在Sublime Editor中配置Python环境的详细教程
2020/05/03 Python
python基于socket模拟实现ssh远程执行命令
2020/12/05 Python
房地产开发计划书
2014/01/10 职场文书
养牛场项目建议书
2014/05/13 职场文书
放弃遗产继承公证书
2015/01/26 职场文书
库房管理员岗位职责
2015/02/12 职场文书
2015年班级工作总结范文
2015/04/03 职场文书
导游词之千岛湖
2019/09/23 职场文书