我正在寻找可以在Perl和
Python中使用的快速(xml太慢)序列化方法.
不幸的是,我不能使用JSON(和许多其他人),因为它总是将dict键的类型从整数更改为字符串.我需要序列化/反序列化来保留密钥类型.
Python:
>>> import json >>> dict_before = {1:'one',20: 'twenty'} >>> data = json.dumps(dict_before) >>> dict_after = json.loads(data) >>> dict_before {1: 'one',20: 'twenty'} #integer keys >>> dict_after {u'1': u'one',u'20': u'twenty'} #string keys
欢迎任何建议.
解决方法
尝试
msgpack.它紧凑而快速.有一个
perl implementation但我从来没有用过它. python impl虽然有效:
>>> import msgpack >>> x=msgpack.dumps({1:'aaa',2:'bbb'}) >>> x '\x82\x01\xa3aaa\x02\xa3bbb' >>> len(x) 11 >>> print msgpack.loads(x) {1: 'aaa',2: 'bbb'} >>>