执行python脚本并读取其JSON输出

执行python脚本并读取其JSON输出,python,json,perl,Python,Json,Perl,我有一个python脚本“/marvel/avengers.py”,它在执行时返回以下JSON数组 #!/usr/bin/python3 X = [{"name":"tony", "job": "ironman"}, {"name": "banner", "job": "hulk"}] print(X) 输出: [{'name':'to

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

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

[{'name':'tony', 'job': 'ironman'}, {'name': 'banner', 'job': 'hulk'}]
$VAR1 = '[{\'job\': \'ironman\', \'name\': \'tony\'}, {\'job\': \'hulk\', \'name\': \'banner\'}]
';
'"' expected, at character offset 2 (before "'job': 'ironman', 'n...") at ./avengers_perl.pl line 7.
[{"job": "ironman", "name": "tony"}, {"job": "hulk", "name": "banner"}]
我想从perl执行这个python脚本并读取它的JSON输出。但是我得到了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);
输出:

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

Python脚本以单引号打印输出,而不是JSON。将其更改为“低于”修复了该问题

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

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