zoukankan      html  css  js  c++  java
  • python使用json格式进行数据封装

    官方地址(英文):http://simplejson.readthedocs.org/en/latest/

    最简单的使用方法是:

    >>> import simplejson as 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 simplejson.compat import StringIO
    >>> io = StringIO()
    >>> json.dump(['streaming API'], io)
    >>> io.getvalue()
    '["streaming API"]'
    


    一般情况下:

    >>> 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数据不易于查看,所有数据都显示在一行上面。如果我们需要格式更加良好的json数据,我们可以如下使用方法:

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

    \n不会影响json本身的数据解析,请放心使用。
    解析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格式文件

    def edit(request):
    	filepath = os.path.join(os.path.dirname(__file__),'rights.json')
    	content = open(filepath).read().decode('utf-8')
    	rights = simplejson.loads(content)
    	print rights
    	print rights[0]['manageTotal']
    


    json数据格式为:

    [{"manageTotal":"管理"}]

    注意:json不支持单引号

  • 相关阅读:
    RSAUtils非对称加密
    计算日期之间的时间差
    面向注解的切面实现
    多个切面执行同一个方法
    spring切面拦截实现
    三种实现日志过滤器的方式 (过滤器 (Filter)、拦截器(Interceptors)和切面(Aspect))
    redis实现 msetex和 getdel命令
    mvn修改版本号命令
    shell脚本实例-while实现批量创建用户
    shell脚本实例-for实现批量主机的探测
  • 原文地址:https://www.cnblogs.com/chenjianhong/p/4144861.html
Copyright © 2011-2022 走看看