You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Python中的多个列表传递到PHP并转为对应数组?

解决方案

方案1:不修改现有Python代码

你当前Python端分两行输出两个JSON字符串,PHP拿到的$return数组已经按行存储了两个JSON串,逐行解码即可:

exec("test.py", $return);
// 逐行解码得到两个数组
$list1 = json_decode($return[0], true);
$list2 = json_decode($return[1], true);

// 验证输出
var_dump($list1, $list2);

方案2(更推荐):Python端统一打包输出

这种方案可靠性更高,避免输出内容带换行、行数变化等异常场景导致解析失败,只需要一次编解码:

Python端调整代码

import json
list1 = [1,2,3]
list2 = [4,5,6]
# 把所有列表打包为一个整体序列化输出
print(json.dumps([list1, list2]))

PHP端解析代码

// 用shell_exec直接获取完整的输出字符串,trim去除末尾换行
$fullOutput = trim(shell_exec("test.py"));
// 一次解码得到包含两个列表的二维数组
$allLists = json_decode($fullOutput, true);
$list1 = $allLists[0];
$list2 = $allLists[1];

// 验证输出
var_dump($list1, $list2);

原写法问题说明

你第二种写法只能拿到第二个列表,是因为exec()函数的返回值固定为命令执行输出的最后一行内容,所以只会拿到第二行的JSON串,解码后对应第二个列表。

内容的提问来源于stack exchange,提问作者user1922979

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 16:54:00