json -- JSON操作

描述:
    1). 编码Python对象为JSON字符串
        import json
        print json.dumps(['foo', {'bar':('baz', None, 1.0, 2)}])
        
    2). 解码JSON字符串为Python对象
        import json
        print json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]')    #输出: [u'foo', u'bar':[u'baz', None, 1.0, 2]}]

基本用法:
    (1). json.dump(obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None,
                    encoding="utf-8", default=None, sort_keys=Fals, **kw)
            将Python对象转为JSON字符串,并存储到写打开的文件fp中
            skipkeys: 若设置为True(默认:False),则当字典key不是(str, unicode, int, long, float, bool, None)时会跳过该项(默认抛出TypeError错误)
            ensure_ascii: 若设置为True(默认为True),输出中所有非ASCII字符,会转义为\uXXXX
            indent: 为非负整数,指定缩进宽度(为0或负数则会添加换行),None表示紧凑型输出
            separators: 是一个(item_separator, dict_separator)元组,默认为(',', ': ')
            encoding: 默认编码UTF-8
            default(obj): 是一个函数,返回obj的序列化版本或抛出TypeError错误,默认抛出TypeError错误。
            sort_keys: 若设置为True(默认为False),输出按字典key的升序
            cls: 为JSONEncoder的子类(需覆盖default()方法)
        
    (2). json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None,
                    encoding="utf-8", default=None, sort_keys=Fals, **kw)
            将Python对象转为JSON字符串
    
    (3). json.load(fp[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])
            从文件fp中加载JSON字符串,并转换为Python对象
    
    (4). json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])
            将JSON字符串转为Python对象
            
实例:
    import json
    obj = {
        "name"    :    "hyd",
        "age"    :    25,
        "sex"    :    "M",
        "list"    :    [1, 1.0, None, "www"]
    }
    jsonStr = json.dumps(obj)
    print jsonStr
    
    print json.loads(jsonStr)