0

如何以可以从 Python 读取的方式将 Perl 哈希写入文件?

例如:

#!/usr/bin/perl
my %h = (
   foo => 'bar',
   baz => ['a', 'b', 'c'],
   raz => {
       ABC => 123,
       XYZ => [4, 5, 6],
   }
);

dumpHash('/tmp/myhash', %h);

... 和

#!/usr/bin/python
h = readHash('/tmp/myhash')
print h

# {
#  'foo': 'bar', 
#  'baz': ['a', 'b', 'c'],      
#  'raz': {
#          'ABC': 123, 
#          'XYZ': [4, 5, 6]
#         }
# }

我通常使用 Perl 的内置Storable来序列化哈希。我看到 Python 有一个Storable reader,但它不是标准发行版的一部分。

有没有办法使用两种语言的标准内置插件来做到这一点。

4

1 回答 1

0

我错过了第一次阅读您的问题时的“内置”要求,但我离题了。JSON不是 Perl 内置的,所以你必须通过CPAN. 尽管如此,这可能是最有效和最兼容的方法之一。

珀尔:

use warnings;
use strict;

use JSON;

my $file = 'data.json';

my %h = (
   foo => 'bar',
   baz => ['a', 'b', 'c'],
   raz => {
       ABC => 123,
       XYZ => [4, 5, 6],
   }
);

my $json = encode_json \%h;

open my $fh, '>', $file or die $!;

print $fh $json;

close $fh or die $!;

Python:

import json

file = 'data.json';
data = json.loads(open(file).read())

print(data)
于 2015-07-31T18:25:44.263 回答