繁体   English   中英

执行 python 脚本并读取其 JSON output

[英]Execute python script and read its JSON output

我有一个 python 脚本“/marvel/avengers.py”,它在执行时返回以下 JSON 数组。

#!/usr/bin/python3
X = [{"name":"tony", "job": "ironman"}, {"name": "banner", "job": "hulk"}]
print(X)

OUTPUT:

[{'name':'tony', 'job': 'ironman'}, {'name': 'banner', 'job': 'hulk'}]

我想从 perl 执行这个 python 脚本并读取它的 JSON Z78E6221F6393D1356681DB39DZF1。 但我收到 JSON 解析错误。 我的 perl 代码:

#!/usr/bin/perl
use strict;
use warnings;
use JSON;
my $json = `python /marvel/avengers.py`;
print Dumper($json);
my $parsed_json = JSON::decode_json($json);

OUTPUT:

$VAR1 = '[{\'job\': \'ironman\', \'name\': \'tony\'}, {\'job\': \'hulk\', \'name\': \'banner\'}]
';
'"' expected, at character offset 2 (before "'job': 'ironman', 'n...") at ./avengers_perl.pl line 7.

Python 脚本在不是 JSON 的单引号中打印 output。 将其更改为以下解决了该问题。

#!/usr/bin/python3
import json
X = [{"name":"tony", "job": "ironman"}, {"name": "banner", "job": "hulk"}]
print(json.dumps(X), end='')

OUTPUT:

[{"job": "ironman", "name": "tony"}, {"job": "hulk", "name": "banner"}]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM