¿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 № 1Me 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)