我有一个 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'}]
我想从 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);
输出:
$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。将其更改为以下修复了问题。
#!/usr/bin/python3
import json
X = [{"name":"tony", "job": "ironman"}, {"name": "banner", "job": "hulk"}]
print(json.dumps(X), end='')
输出:
[{"job": "ironman", "name": "tony"}, {"job": "hulk", "name": "banner"}]
关于python - 执行 python 脚本并读取其 JSON 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67073201/