是否有一个Python模块使用Perl的Storable“解冻”冻结的数据?

时间:2011-03-29 21:28:30

标签: python perl serialization

我有一个遗留数据库,其中包含使用Perl中Storable模块的nfreeze方法编写的简单数据结构(没有CODE引用谢天谢地)。

现在我需要将这些数据加载到Python应用程序中。有谁知道Storable的{​​{1}}的Python实现?谷歌没有帮助我。

如果涉及到它,我可以从Storable来源对数据格式进行反向工程,但如果已经完成,我宁愿避免这种乐趣。

用代码表达:给定像这样的Perl程序:

thaw

我正在追求#!/usr/bin/perl use strict; use warnings; use MIME::Base64; use Storable qw/nfreeze/; my $data = { 'string' => 'something', 'arrayref' => [1, 2, 'three'], 'hashref' => { 'a' => 'b', }, }; print encode_base64( nfreeze($data) ); 这样的Python:

magic_function

打印:

#!/usr/bin/env python
import base64
import pprint
import sys

def magic_function(frozen):
    # A miracle happens
    return thawed

if __name__ == '__main__':
    frozen = base64.b64decode(sys.stdin.read())
    data = magic_function(frozen)
    pprint.pprint(data)

在针对Perl程序的输出运行时。

2 个答案:

答案 0 :(得分:10)

我不能立即清楚这个项目有多远,但它似乎旨在做你想做的事情:

http://gitorious.org/python-storable

答案 1 :(得分:5)

如果您的第一个选项不起作用,另一个选项是编写一个简单的perl脚本来解冻数据,然后以JSON或YAML或您可以在Python中轻松使用的某种格式写出来。