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

标签 python json perl

我有一个 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/

相关文章:

json - 如何在 grails 中注册自定义 json marshaller

javascript - 遍历 JSON 对象数组并根据对象的匹配 ID 获取属性

mysql - 如何使sqlite in-memory db join查询和MySQL一样快

linux - 在 Perl 模块 Proc::ProccessTable 中,为什么 pctcpu 有时会返回 'inf' 、 'nan' 或大于 100 的值?

python - 向用户添加属性谷歌应用引擎

python - Dask:pickle dataframe 以备后用是否安全?

python - 为什么Python中的数组填充速度很慢

python - 如何在python中打印csv文件每一行的总和

javascript - 使用ES6表示法中的filter()方法解析一维数组

perl - 如何找到 Perl 的标准 site_perl 目录?