本文实例讲述了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]' |
或者也可以去看官方文档,自己能学到东西才是真的!
希望本文所述对大家Python程序设计有所帮助。