我使用simplejson将json字符串反序列化为python对象.我有一个自定义编写的object_hook,负责将json反序列化回我的域对象.
问题是,当我的json字符串很大时(即服务器以json字符串的形式返回大约800K域对象),我的python反序列化器花了将近10分钟来反序列化它们.
我进一步深入研究它看起来像simplejson,因为它没有做太多工作,而是将所有内容委托给object_hook.我尝试优化我的object_hook,但这也没有提高我的性能.(我几乎没有提高1分钟)
我的问题是,我们是否有任何其他标准框架经过优化以处理大量数据集,或者是否有一种方法可以利用框架的功能而不是在object_hook级别执行所有操作.
我看到没有object_hook,框架只返回一个字典列表,而不是域对象列表.
这里的任何指针都很有用.
仅供参考我使用的是simplejson版本3.7.2
这是我的示例_object_hook:
def _object_hook(dct):
if '@CLASS' in dct: # server sends domain objects with this @CLASS
clsname = dct['@CLASS']
# This is like Class.forName (This imports the module and gives the class)
cls = get_class(clsname)
# As my server is in java, I convert the attributes to python as per python naming convention.
dct = dict( (convert_java_name_to_python(k), dct[k]) for k in dct.keys())
if cls != None:
obj_key = None
if "@uuid"in dct
obj_key = …Run Code Online (Sandbox Code Playgroud)