• python simplejson模块的使用方法


    python simplejson模块的使用方法  

    2011-05-04 09:27:01|  分类: python |  标签:simplejson  |字号 订阅

     
     

    python安装:easy_install simplejson

    导入模块:


    import simplejson as json 

    几个主要函数:dump,dumps,load,loads 带s跟不带s的区别是 带s的是对 字符串的处理,而不带 s的是对文件对像的处理。

    json化python字典数据:


    json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}]) 

    '["foo", {"bar": ["baz", null, 1.0, 2]}]' 

     print json.dumps("\"foo\bar") 
     "\"foo\bar"
     

    sort_keys设置是否排序字典:


    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编码数据导向到此文件对象:


    json.dump(['streaming API'], io) 

    取得文件流对象的内容:


    io.getvalue() 
    '["streaming API"]'
     

    压缩编码:


    import simplejson as json 
    json.dumps([1,2,3,{'4': 5, '6': 7}], separators=(',',':')) 
    '[1,2,3,{"4":5,"6":7}]'
     

    美化打印:


    import simplejson as json 
    s = json.dumps({'4': 5, '6': 7}, sort_keys=True, indent='    ') 
    print '\n'.join([l.rstrip() for l in  s.splitlines()]) 

        "4": 5, 
        "6": 7 
    }
     

    解析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
     

    指定json解析后的对象:


    import simplejson as 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
     

    指定编码对象的格式:


    import simplejson as 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]'
     
    来源:http://lijing0450.blog.163.com/blog/static/1397485212011449271818/
     
     
     
  • 相关阅读:
    archlinux .bash_history
    Ubuntu环境下挂载新硬盘
    软碟通 UltraISO U启替代品 Win32DiskImager 无设备 无盘符 无u盘 无优盘 解决方案 之diskpart
    delphi Integer overflow
    MSBuild Tools offline
    delphi synedit免费的拼写检查器dll
    git 自定义命令行
    lua编译
    gcc ar
    Windows Subsystem for Linux (WSL)挂载移动硬盘U盘 卸载 c d 盘
  • 原文地址:https://www.cnblogs.com/dwnblogs/p/2749299.html
Copyright © 2020-2023  润新知