Python: python模块介绍-json:json编码解码

python scott 281℃ 0评论

目录

JSON编码和解码

JSON(),由(取代了RFC4627)和,是一种轻量级的数据交换格式,灵感来自对象文字语法(严格来说它不是JavaScript的子集,因为它额外支持了行分割U+2028和段分割U+2029语法)。

simplejson的API和标准库marshal及pickle模块类似。它是包含在Python2.6的JSON库的外部版本,目前仍保持兼容的Python2.5并有显著的性能优势,尽管没有使用C扩展加速。 simplejson也支持Python的3.3+。

simplejson的的发布下载地址:, 最新代码:

  • 编码基本的python对象层次
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
>>>  import  simplejson  as  json
>>>  json. dumps([ 'foo' ,  { 'bar' :  ( 'baz' ,  None ,  1.0 ,  2 )}])
'["foo>", {"bar>": ["baz>", null, 1.0, 2]}]'
>>>  print ( json. dumps( " \>" foo \b ar" ))
>"
\" foo \b ar>"
>>>  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  simplejson.compat  import  StringIO
>>>  io =  StringIO()
>>>  json. dump([ 'streaming API' ],  io)
>>>  io. getvalue()
'["streaming API>"]'
  • 紧凑编码
1
2
3
4
5
6
>>>  import  simplejson  as  json
>>>  obj =  [ 1 , 2 , 3 ,{ '4' :  5 ,  '6' :  7 }]
>>>  json. dumps( obj,  separators= ( ',' ,  ':' ),  sort_keys= True )
'[1,2,3,{"4>":5,"6>":7}]'
>>>  json. dumps( obj,   sort_keys= True )
'[1, 2, 3, {"4>": 5, "6>": 7}]'
  • 更好的输出
1
2
3
4
5
6
>>>  import  simplejson  as  json
>>>  print ( json. dumps({ '4' :  5 ,  '6' :  7 },  sort_keys= True ,  indent= 4  *  ' ' ))
{
"4>" :  5 ,
"6>" :  7
}
  • 解码
1
2
3
4
5
6
7
8
9
10
>>>  import  simplejson  as  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 \x08 ar'
True
>>>  from  simplejson.compat  import  StringIO
>>>  io =  StringIO( '["streaming API>"]' )
>>>  json. load( io)[ 0 ]  ==  'streaming API'
True
  • 使用Decimal代替浮点数
1
2
3
4
5
6
7
8
9
10
>>>  import  simplejson  as  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 \x08 ar'
True
>>>  from  simplejson.compat  import  StringIO
>>>  io =  StringIO( '["streaming API>"]' )
>>>  json. load( io)[ 0 ]  ==  'streaming API'
True

本文地址

原文:http://automationtesting.sinaapp.com/blog/m_json

转载请注明:osetc.com » Python: python模块介绍-json:json编码解码

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址