python中5個json庫的速度對比

2021-09-28 00:12:07 字數 2770 閱讀 8905

python中json的序列化與反序列化有很多庫,具體選擇使用哪乙個,或者哪乙個速度更快呢?

先上結果

json序列化與反序列化速度對比(按總時間排序:測試資料100 * 10000)

ujson           序列化:

2.084 反序列化:

1.157 總時間:

3.241

yajl 序列化:

1.910 反序列化:

1.970 總時間:

3.880

cjson 序列化:

3.305 反序列化:

1.328 總時間:

4.632

******json 序列化:

10.279 反序列化:

4.658 總時間:

14.937

stdlib json 序列化:

7.013 反序列化:

8.594 總時間:

15.607

其中,除了stdlib json也就是內建的json.dumps外,其他都是第三方包。資料量較少時,速度幾乎沒有區別,無所謂選擇哪乙個。資料量大的情況下,ujson的總體表現最好,但序列化不如yajl

而django中,如果只是response乙個json物件,可以直接使用jsonresonse

用法為:

''預設採用內建方式進json格式化後返回。如果資料不多,著實方便(django1.7引入)

測試**

來自rtyler,在其基礎上新增了ujson

'''

'''import time

import pickle

import yajl

try:

import cjson

except importerror:

cjson =

none

try:

import ******json

except importerror:

******json =

none

try:

import ujson

except importerror:

ujson =

none

try:

import json

except importerror:

json =

none

default_data =,}

defttt

(f, data=

none

, x=

100*

10000):

start = time.time(

)while x:

x -=

1 foo = f(data)

return time.time(

)- start

defprofile

(serial, deserial, data=

none

, x=

100*

10000):

ifnot data:

data = default_data

squashed = serial(data)

return

(ttt(serial, data, x)

, ttt(deserial, squashed, x)

)def

test

(serial, deserial, data=

none):

ifnot data:

data = default_data

assert deserial(serial(data)

)== data

contenders =[(

'yajl'

,(yajl.encoder(

).encode, yajl.decoder(

).decode)),

]if cjson:

('cjson'

,(cjson.encode, cjson.decode)))

if ******json:

('******json'

,(******json.dumps, ******json.loads)))

if json:

('stdlib json'

,(json.dumps, json.loads)))

if ujson:

('ujson'

,(ujson.dumps, ujson.loads)))

for name, args in contenders:

test(

*args)

x, y = profile(

*args)

print

("%-11s serialize: %0.3f deserialize: %0.3f total: %0.3f"%(

name, x, y, x + y)

)

5個開源庫的JSON解析速度測試

ios5新增了json解析的api,我們將其和其他五個開源的json解析庫進行了解析速度的測試,下面是測試的結果。我們選擇的測試物件包含下面的這幾個框架,其中nsjsonserialization是ios5系統新增的json解析的api,需要ios5的環境,如果您在更低的版本進行測試,應該遮蔽相應的...

python中json 庫的使用(常用方法)

python 資料結構轉換為 json import json data json str json.dumps data print json 物件 json str 輸出 json 物件 可以將乙個 json 編碼的字串轉換回乙個 python 資料結構,並取指定的值 b json.loads ...

python中的json解析

主要實現以下功能 解析 與構造json,即encoder and decoder 官方指導 中文教程 前者將obj轉化為json str,後者將str轉化為python物件,如果json字串是個object,轉化為dict,若是array則轉化為list json寫法 表示array的json字串 ...