zoukankan      html  css  js  c++  java
  • python对json的相关操作

    什么是json:

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。

    JSON建构于两种结构:

    “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。 
    值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。 
    这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。

    jso官方说明参见:http://json.org/

    Python操作json的标准api库参考:http://docs.python.org/library/json.html

    Encoding 编码

    json.dumps 将一个Python对象 转换成json对象

     

    >>> import json
    >>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
    '["foo", {"bar": ["baz", null, 1.0, 2]}]'
    >>> print json.dumps(""fooar")
    ""fooar"
    >>> 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}

    dumps对象与对象之间的默认划分方式是:,  和:

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

    为了使得输出结果比较好看,可以利用indent进行首行缩进

    json01 = json.dumps([['foo',{'bar':('baz',None,1.0,2)}],['foo1',{'bar1':('baz1',2.0,2.0,12)}]],indent=4)
    print json01 
    [
        [
            "foo", 
            {
                "bar": [
                    "baz", 
                    null, 
                    1.0, 
                    2
                ]
            }
        ], 
        [
            "foo1", 
            {
                "bar1": [
                    "baz1", 
                    2.0, 
                    2.0, 
                    12
                ]
            }
        ]
    ]

    sort_keys = True 可以按照升序排序

    print json.dumps({'b': 15, 'a': 7}, sort_keys=True,indent=4)
    {
        "a": 7, 
        "b": 15
    }

    读取json数据

    >>> import json
    >>> json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]')
    [u'foo', {u'bar': [u'baz', None, 1.0, 2]}]
    >>> json.loads('"\"foo\bar"')
    u'"foox08ar'

    类型转换和上面相反

    参考:http://www.cnblogs.com/coser/archive/2011/12/14/2287739.html

  • 相关阅读:
    hadoop完全分布式集群配置
    Hadoop启动时出现Unrecognized option: jvm的问题(收集)
    Linux下.NET开发环境构建
    Linux下常用压缩于解压缩命名收集
    Windows phone 7学习—开发工具准备
    Linux图形界面开发—monodevelop初探
    hadoop配置一定要注意hadoop所属的用户和组
    hadoop出现Incompatible namespaceIDs 的错误,导致namenode进程启动不了
    SQL不同数据库之间数据导入方法
    发送EMail电子邮件
  • 原文地址:https://www.cnblogs.com/theskulls/p/5096643.html
Copyright © 2011-2022 走看看