Python学习笔记之解析json的方法分析
本文实例讲述了Python解析json的方法。分享给大家供大家参考,具体如下:
刚学习到Python中解析json的方法,觉得有必要在这里坐下笔记。
我是在python的内部环境中看的
Encoding basic Python object hierarchies
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | >>> 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::
1 2 3 4 5 6 7 8 9 10 11 | >>> 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::
1 2 3 4 5 6 7 8 9 10 | >>> 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::
1 2 3 4 5 6 7 8 9 10 11 | >>> 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::
1 2 3 4 5 6 7 8 9 10 11 | >>> 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]' |
或者也可以去看官方文档,自己能学到东西才是真的!
PS:关于json操作,这里再为大家推荐几款比较实用的json在线工具供大家参考使用:
在线JSON代码检验、检验、美化、格式化工具:
http://tools.jb51.net/code/json
JSON在线格式化工具:
http://tools.jb51.net/code/jsonformat
在线XML/JSON互相转换工具:
http://tools.jb51.net/code/xmljson
json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools.jb51.net/code/jsoncodeformat
在线json压缩/转义工具:
http://tools.jb51.net/code/json_yasuo_trans
更多Python相关内容感兴趣的读者可查看本站专题:《Python操作json技巧总结》、《Python编码操作技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
微信公众号搜索 “ 脚本之家 ” ,选择关注
程序猿的那些事、送书等活动等着你
相关文章
PyQt5高级界面控件之QTableWidget的具体使用方法
这篇文章主要介绍了PyQt5高级界面控件之QTableWidget的具体使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-02-02django 将自带的数据库sqlite3改成mysql实例
这篇文章主要介绍了django 将自带的数据库sqlite3改成mysql实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-07-07一文教你将Visual Studio Code变成Python开发神器
Visual Studio Code 是一款功能强大、可扩展且轻量级的代码编辑器,经过多年的发展,已经成为 Python 社区的首选代码编辑器之一。本文将为大家介绍一下如何将Visual Studio Code变成Python开发神器,需要的可以参考一下2022-07-07
最新评论