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使用Socket(Https)Post登录百度的实现代码
May 18 Python
python实现的简单文本类游戏实例
Apr 28 Python
学习python类方法与对象方法
Mar 15 Python
基于使用paramiko执行远程linux主机命令(详解)
Oct 16 Python
Python使用SQLite和Excel操作进行数据分析
Jan 20 Python
Python图像处理之简单画板实现方法示例
Aug 30 Python
详解Python中的测试工具
Jun 09 Python
Python closure闭包解释及其注意点详解
Aug 28 Python
Python Json数据文件操作原理解析
May 09 Python
基于Python实现视频的人脸融合功能
Jun 12 Python
Python getsizeof()和getsize()区分详解
Nov 20 Python
Django集成MongoDB实现过程解析
Dec 01 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
ThinkPHP 3.2 数据分页代码分享
2014/10/14 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
2015/07/31 PHP
Yii基于数组和对象的Model查询技巧实例详解
2015/12/28 PHP
JavaScript CSS修改学习第五章 给“上传”添加样式
2010/02/19 Javascript
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
2011/11/21 Javascript
如何制作浮动广告 JavaScript制作浮动广告代码
2012/12/30 Javascript
jQuery实现密保互斥问题解决方案
2013/08/16 Javascript
jQuery调用RESTful WCF示例代码(GET方法/POST方法)
2014/01/26 Javascript
js和jquery中循环的退出和继续下一个循环
2014/09/03 Javascript
javascript关于运动的各种问题经典总结
2015/04/27 Javascript
javascript实现全局匹配并替换的方法
2015/04/27 Javascript
jQuery实现宽屏图片轮播实例教程
2015/11/24 Javascript
详解基于Bootstrap扁平化的后台框架Ace
2015/11/27 Javascript
学习vue.js计算属性
2016/12/03 Javascript
Move.js入门
2017/02/08 Javascript
PHP实现记录代码运行时间封装类实例教程
2017/05/08 Javascript
微信小程序使用Socket的实例
2017/09/19 Javascript
vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】
2018/08/29 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
2019/07/20 Javascript
javascript中undefined的本质解析
2019/07/31 Javascript
vue 实现图片懒加载功能
2020/12/31 Vue.js
[01:56]生活中的妖精之七夕特别档
2016/08/09 DOTA
Python正则简单实例分析
2017/03/21 Python
Python解析命令行读取参数--argparse模块使用方法
2018/01/23 Python
Python爬虫爬取Bilibili弹幕过程解析
2019/10/10 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
2020/02/18 Python
python3检查字典传入函数键是否齐全的实例
2020/06/05 Python
python 基于卡方值分箱算法的实现示例
2020/07/17 Python
Spy++的使用方法及下载教程
2021/01/29 Python
美国在线旅行社:Crystal Travel
2018/09/11 全球购物
印度电子产品购物网站:Vijay Sales
2021/02/16 全球购物
个人简历自我评价八例
2013/10/31 职场文书
认购协议书范本
2014/04/22 职场文书
2016年先进班集体事迹材料
2016/02/26 职场文书
教你做个可爱的css滑动导航条
2021/06/15 HTML / CSS
MySql数据库触发器使用教程
2022/06/01 MySQL