您的位置:首页 > 编程语言 > Python开发

[python]json

2014-05-07 17:36 169 查看
简单的用法如下:

import json;

# encode
print json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}]);
print json.dumps({"c": 0, "b": 0, "a": 0}, sort_keys=True);
print json.dumps([1,2,3,{'4': 5, '6': 7}], separators=(',',':'));
print json.dumps({'4': 5, '6': 7}, sort_keys=True, indent=4, separators=(',', ': '));

# decode
print json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]');
def as_complex(dct):
if '__complex__' in dct:
return complex(dct['real'], dct['imag'])
return dct;
print json.loads('{"__complex__": true, "real": 1, "imag": 2}', object_hook=as_complex);

# Extending JSONEncoder
class ComplexEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, complex):
return [obj.real, obj.imag];
return json.JSONEncoder.default(self, obj);
print json.dumps(2 + 1j, cls=ComplexEncoder);

下面详细来看。

dumps

dump用来得到对象的json格式,定义如下:

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=False, **kw)
其中:

obj:要格式化的对象
skipkeys:跳过非基础类型的key
ensure_ascii:跳过非ASCII码
check_circular:检查循环
all_nan:错误的数字
indent:缩进
separators:分隔符
encoding:编码方式
sortkeys:对输出进行排序

loads

load用来从json格式的字符串得到python对象,定义如下:

json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])
下面来看与dumps不同的参数:

object_hook:把一个json字符串编程字典之后,调用它来到object的转化
parse_float、parse_int、parse_constant:转化相应类型所使用的方法

这些参数基本上都可以从上面的例子中看到。

-----------

END
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: