我在OS X上使用了Python2.7和marshal 2,并尝试序列化一个两级字典类型:
{(1, 3): {(0, 1): 145, (1, 2): 101}}
我有一个对象d
从一个用于存储数据的自定义类实例化,该类包含一个方法getRawData()
,用于以上述格式返回数据。当我第一次用
然后用
with open('counts','rb') as f:
print(marshal.load(f))
奇怪的事情发生了。打印格式如下:
{(1, 3): {('\x00', '\x01'): 145, ('\x01', '\x02'): 101}}
更令人费解的是,如果我创建要手动序列化的字典
e = {(1, 3): {(0, 1): 145, (1, 2): 101}}
这给了
e == d.getRawData()
True
然后序列化并反序列化e
打印格式正确。你知道怎么回事吗?在
目前没有回答
相关问题 更多 >
编程相关推荐