/ / Escribir un hash de Perl en el disco para ser leído por Python - python, perl, cross-language

Escribir un hash Perl en el disco para ser leído por Python - python, perl, cross-language

¿Cómo puedo escribir un hash de Perl en un archivo, de forma que pueda leerse desde Python?

Por ejemplo:

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

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

... y

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

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

Normalmente uso Perl "s incorporado Storable para serializar hashes. Veo que Python tiene un Lector adorable, pero no es parte de la distribución estándar.

¿Hay alguna manera de hacer esto con incorporaciones estándar de ambos idiomas?

Respuestas

0 para la respuesta № 1

Me perdí el requisito "incorporado" en la primera lectura de su pregunta, pero estoy divagando. JSON no está integrado en Perl, por lo que tendrá que instalarlo a través de CPAN. No obstante, esta es probablemente una de las formas más eficientes y compatibles de hacerlo.

Perl:

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 $!;

Pitón:

import json

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

print(data)