何为JSON,举个例子:
{"start":
0, "total": 4,
"data": [
{"name":
"AUTOEXEC.BAT", "visitTime": 1294499717374,
"ext": "bat", "mode": 33279,
"modifyTime": 1294499717374, "path":
"c:\\AUTOEXEC.BAT", "type": "file",
"createTime": 1294499717374, "dir": "c:\\",
"size": 0},
{"name": "bootlog.txt",
"visitTime": 1307954317843, "ext": "txt",
"mode": 33206, "modifyTime": 1307954317843,
"path": "c:\\bootlog.txt", "type":
"file", "createTime": 1307954317843, "dir": "c:\\",
"size": 330},
{"name": "detlog.txt",
"visitTime": 1307954317843, "ext": "txt",
"mode": 33206, "modifyTime": 1307954317843,
"path": "c:\\detlog.txt", "type":
"file", "createTime": 1307954317843, "dir":
"c:\\", "size": 370},
{"name":
"git_shell_ext_debug.txt", "visitTime": 1307953305015,
"ext": "txt", "mode": 33206,
"modifyTime": 1310367644343, "path":
"c:\\git_shell_ext_debug.txt", "type": "file",
"createTime": 1307953305015, "dir": "c:\\",
"size": 282963}],
"pageSize": -1}以上这一串就是JSON格式的字符串了,感觉很象python里的字典对吧,仔细观察,注意里面的{}各内容。
看了网上说明方法解析,发现import json 里面没有read的方法,之前也没用过就乱试,最后发现有个loads()方法可以用,之后网上查找资料才知道原来我用的是python 2.6自带的是
smiplejson,而read是json-py里的方法。
以上字符串在loads时提示“Invalid \escape。。。。”错误,原因为字符串中有转义字符"\",去了就可以了,可是如果人家给我的就是这么一个字符串,我然不成还要去改里面的字符串再传给LOADS吗,不确定JSON里不否就不能"\"这么用呢?待解。。。
http://stackoverflow.com/questions/4296041/simplejson-loads-get-invalid-escape-x
以下为网上博文:http://blog.csdn.net/toontong/article/details/4979572
最近发现json解释时,不同人,用同个json库写的代码不一样(所调方法函数不一致,不同用法会出现代码不兼容)。
特地去查了下资料,做了个比较。结果如下:
------------------------------------------------------------------------------------------------------------------------
python中的json解释库有好几个,其中不同版本有使用上的差异。
常用有 json-py 与smiplejson 两个包
其中json-py 包含一个minjson,用法一样,只是import时 是 import minjson
两个用法上有差别, 但import语句一样,
import json # 都是如此import的。
import minjson
# json-py库用法
json.read( js_obj )
json.write(py_obj)
#json的minjson用法
minjson.read( js_obj )
minjson.write(py_obj)
# smiplejson 的用法
json.loads(js_obj)
json.dumps(py_obj)
python2.5没有内置的json,要手动安装。我们现在使用的是 json-py3.4
python2.6内置json解释库,是 smiplejson
python2.5.4, XP下,1K次读/写结果如下:
------------------------------------------------------------
minjosn : 1.0737601508
json : 4.49144874205
simplejson: 0.24600865082
---------------------------------------------------------------
python2.5.4, centOS5.3 (lniux)下:
minjosn : 1.8272049427
json : 8.26148796082
simplejson: 3.87293195724
-------------------------------------------------------------
以上令我不解的是XP下速度会比lniux快???
结论:
基于以上,个人感觉使用 minjson.py比较保险,现在我们开发使用的是 json-py速度最慢那个。。。
因为minjson.py只有一个文件,建议直接复制到工程公共库目录下,直接使用,免去安装痛苦。
附上测试脚本 ,希望有人在不同机子上测试结果帖上来。。。