我有一个遗留数据库,其中包含使用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程序的输出运行时。
答案 0 :(得分:10)
我不能立即清楚这个项目有多远,但它似乎旨在做你想做的事情:
答案 1 :(得分:5)
如果您的第一个选项不起作用,另一个选项是编写一个简单的perl脚本来解冻数据,然后以JSON或YAML或您可以在Python中轻松使用的某种格式写出来。