将多维数组从perl脚本传递到python脚本

2024-10-01 22:30:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做的是:

我使用一个多维数组,或者更确切地说,一个散列数组,并尝试将其从perl脚本传递到python脚本中。目前我正在将其转换为json,然后将json字符串作为文本字符串作为参数传递到python脚本中。在

哈希数组如下所示:

 %HoH = (
id10001 => {
    lat   => "180",
    long  => "-180",
},
id10002 => {
    lat   => "180",
    long  => "-180",
},
id10003 => {
    lat   => "180",
    long  => "-180",
}
);

然后我在perl脚本中,将其转换为json字符串:

^{pr2}$

然后传递到python脚本中。python脚本将json字符串解码回原始构造的数组结构。在

有没有更好的方法将数组或多维数组从perl脚本传递到python脚本?

提前感谢您的帮助


Tags: 字符串文本脚本json数组解码结构long
2条回答

不,序列化是通过纯字符缓冲区(如命令行参数、文件或其他任何东西)传递数据的唯一方法。只要特定的序列化格式(本例中是JSON)自然地覆盖了特定于语言的结构,您就一切就绪了。在

如果您愿意的话,您可以试验一下Perl和Python都可以使用的序列化格式的基准库,看看在您的情况下哪个更快,但是至少Perl的JSON的XS实现非常快,并且通常在速度上超过其他可用的序列化程序。在

JSON的结构似乎很奇怪;与Perl中显示的类似的结构更像

{
    "id10001": { "lat": "180", "lon": "-180" },
    "id10002": { "lat": "180", "lon": "-180" },
    "id10003": { "lat": "180", "lon": "-180" },
}

(尽管Perl中有括号约定,但是您有一个散列,而不是一个散列数组。另外,对于lat/lon值使用字符串而不是数字有什么特别的原因吗?)在

但除此之外,你的想法是正确的。在

相关问题 更多 >

    热门问题