import simplejson import cPickle import marshal JSON_FILES = '/tmp/frocks.json', '/tmp/logistics.json', '/tmp/users.json', '/tmp/classes.json' PICKLE_FILES = [x.replace('json','pickle') for x in JSON_FILES] MARSHAL_FILES = [x.replace('json','marshal') for x in JSON_FILES] for f in JSON_FILES: d=simplejson.load(open(f)) cPickle.dump(d, open(f.replace('.json','.pickle'),'w'), protocol=-1) marshal.dump(d, open(f.replace('.json','.marshal'),'w')) from time import time from random import shuffle jt = [] pt = [] mt = [] tests = [('json', JSON_FILES), ('pickle', PICKLE_FILES), ('marshal', MARSHAL_FILES)] for i in range(100): shuffle(tests) for L, filelist in tests: t0 = time() if L == 'json': for f in filelist: # read data = simplejson.load(open(f)) # write simplejson.dump(data, open('/dev/null','w')) jt.append(time()-t0) elif L == 'pickle': for f in filelist: # read data = cPickle.load(open(f)) # write cPickle.dump(data, open('/dev/null','w')) pt.append(time()-t0) elif L == 'marshal': for f in filelist: # read data = marshal.load(open(f)) # write marshal.dump(data, open('/dev/null','w')) mt.append(time()-t0) print "JSON", sum(jt)/len(jt) print "PICKLE", sum(pt)/len(pt) print "MARSHAL", sum(mt)/len(mt)