【发布时间】:2016-07-28 03:02:32
【问题描述】:
我希望能够将 PHP 数组传递给 Python 脚本,该脚本将利用这些数据来执行一些任务。我想尝试使用 shell_exec() 从 PHP 执行我的 Python 脚本并将 JSON 数据传递给它(我是全新的)。
$foods = array("pizza", "french fries");
$result = shell_exec('python ./input.py ' . escapeshellarg(json_encode($foods)));
echo $result;
“escapeshellarg(json_encode($foods)))”函数似乎将我的数组按以下方式传递给 Python 脚本(如果我“回显”该函数,我会得到这个值:
'["pizza","french fries"]'
然后在 Python 脚本里面:
import sys, json
data = json.loads(sys.argv[1])
foods = json.dumps(data)
print(foods)
这会将以下内容打印到浏览器:
["pizza", "french fries"]
这是一个普通的旧字符串,而不是列表。我的问题是,我怎样才能最好地将这些数据视为一个列表,或者某种我可以用“,”作为分隔符遍历的数据结构?我真的不想将文本输出到浏览器,我只想能够将列表分解成几部分并将它们插入文件系统上的文本文件中。
【问题讨论】:
-
在您的示例中 (
data = json.loads(sys.argv[1])) data 已经是 list,然后使用dumps您将其再次转换回字符串