正文
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)