Python学习笔记之解析json的方法分析


Posted in Python onApril 21, 2017

本文实例讲述了Python解析json的方法。分享给大家供大家参考,具体如下:

刚学习到Python中解析json的方法,觉得有必要在这里坐下笔记。

我是在python的内部环境中看的

Encoding basic Python object hierarchies

>>> import json
>>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
'["foo", {"bar": ["baz", null, 1.0, 2]}]'
>>> print json.dumps("\"foo\bar")
"\"foo\bar"
>>> print json.dumps(u'\u1234')
"\u1234"
>>> print json.dumps('\\')
"\\"
>>> print json.dumps({"c": 0, "b": 0, "a": 0}, sort_keys=True)
{"a": 0, "b": 0, "c": 0}
>>> from StringIO import StringIO
>>> io = StringIO()
>>> json.dump(['streaming API'], io)
>>> io.getvalue()
'["streaming API"]'

Compact encoding::

>>> import json
>>> json.dumps([1,2,3,{'4': 5, '6': 7}], sort_keys=True, separators=(',',':'))
'[1,2,3,{"4":5,"6":7}]'
Pretty printing::
>>> import json
>>> print json.dumps({'4': 5, '6': 7}, sort_keys=True,
         indent=4, separators=(',', ': '))
{
  "4": 5,
  "6": 7
}

Decoding JSON::

>>> import json
>>> obj = [u'foo', {u'bar': [u'baz', None, 1.0, 2]}]
>>> json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]') == obj
True
>>> json.loads('"\\"foo\\bar"') == u'"foo\x08ar'
True
>>> from StringIO import StringIO
>>> io = StringIO('["streaming API"]')
>>> json.load(io)[0] == 'streaming API'
True

Specializing JSON object decoding::

>>> import json
>>> def as_complex(dct):
   if '__complex__' in dct:
     return complex(dct['real'], dct['imag'])
   return dct
>>> json.loads('{"__complex__": true, "real": 1, "imag": 2}',
   object_hook=as_complex)
(1+2j)
>>> from decimal import Decimal
>>> json.loads('1.1', parse_float=Decimal) == Decimal('1.1')
True

Specializing JSON object encoding::

>>> import json
>>> def encode_complex(obj):
   if isinstance(obj, complex):
     return [obj.real, obj.imag]
   raise TypeError(repr(o) + " is not JSON serializable")
>>> json.dumps(2 + 1j, default=encode_complex)
'[2.0, 1.0]'
>>> json.JSONEncoder(default=encode_complex).encode(2 + 1j)
'[2.0, 1.0]'
>>> ''.join(json.JSONEncoder(default=encode_complex).iterencode(2 + 1j))
'[2.0, 1.0]'

Python学习笔记之解析json的方法分析

Python学习笔记之解析json的方法分析

或者也可以去看官方文档,自己能学到东西才是真的!

Python 相关文章推荐
python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
Jun 09 Python
Python实现国外赌场热门游戏Craps(双骰子)
Mar 31 Python
python单例模式实例分析
Apr 08 Python
python通过定义一个类实例作为ftp回调方法
May 04 Python
python模块smtplib学习
May 22 Python
Django 多语言教程的实现(i18n)
Jul 07 Python
Python面向对象实现一个对象调用另一个对象操作示例
Apr 08 Python
python求最大值最小值方法总结
Jun 25 Python
Python实现随机生成任意数量车牌号
Jan 21 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
Jul 20 Python
Python 保存加载mat格式文件的示例代码
Aug 04 Python
python之PySide2安装使用及QT Designer UI设计案例教程
Jul 26 Python
Python正则抓取网易新闻的方法示例
Apr 21 #Python
Python中shape计算矩阵的方法示例
Apr 21 #Python
Python使用正则表达式抓取网页图片的方法示例
Apr 21 #Python
用python找出那些被“标记”的照片
Apr 20 #Python
python实现12306火车票查询器
Apr 20 #Python
Python编程修改MP3文件名称的方法
Apr 19 #Python
Python实现将罗马数字转换成普通阿拉伯数字的方法
Apr 19 #Python
You might like
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
2010/03/27 PHP
PHP实现基于mysqli的Model基类完整实例
2016/04/08 PHP
java微信开发之上传下载多媒体文件
2016/06/24 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
js trim函数 去空格函数与正则集锦
2009/11/20 Javascript
node爬取微博的数据的简单封装库nodeweibo使用指南
2015/01/02 Javascript
SyntaxHighlighter 3.0.83使用笔记
2015/01/26 Javascript
angularJS中router的使用指南
2015/02/09 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
2015/10/23 Javascript
js实现文字滚动效果
2016/03/03 Javascript
利用nodejs监控文件变化并使用sftp上传到服务器
2017/02/18 NodeJs
Node.js使用NodeMailer发送邮件实例代码
2017/03/06 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
2017/04/28 Javascript
react+redux的升级版todoList的实现
2017/12/18 Javascript
jQuery实现模糊查询的方法分析
2018/05/10 jQuery
jquery实现垂直手风琴菜单
2020/03/04 jQuery
[37:35]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第二局
2016/02/25 DOTA
[59:15]EG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/29 DOTA
Python实现向服务器请求压缩数据及解压缩数据的方法示例
2017/06/09 Python
Python序列循环移位的3种方法推荐
2018/04/09 Python
Python 单元测试(unittest)的使用小结
2018/11/14 Python
Python实现计算字符串中出现次数最多的字符示例
2019/01/21 Python
Django中的用户身份验证示例详解
2019/08/07 Python
使用Python实现画一个中国地图
2019/11/23 Python
jupyter notebook 多环境conda kernel配置方式
2020/04/10 Python
python实现暗通道去雾算法的示例
2020/09/27 Python
皇马官方商城:Real Madrid Store
2016/09/02 全球购物
澳洲小众品牌的集合网站:BNKR
2018/02/23 全球购物
德国团购网站:Groupon德国
2018/03/13 全球购物
BLACKMORES澳洲官网:澳大利亚排名第一的保健品牌
2018/09/27 全球购物
行政文员岗位职责
2013/11/08 职场文书
课堂教学改革实施方案
2014/03/17 职场文书
网络工程专业大学生求职信
2014/10/01 职场文书
Java elasticsearch安装以及部署教程
2021/06/28 Java/Android
MySQL表锁、行锁、排它锁及共享锁的使用详解
2022/04/02 MySQL
Python selenium绕过webdriver监测执行javascript
2022/04/12 Python