我希望能够将
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"]
这是一个普通的旧字符串,而不是列表.我的问题是,我怎样才能最好地将这些数据视为列表,或者我可以使用“,”作为分隔符迭代的某种数据结构?我真的不想将文本输出到浏览器,我只是希望能够将列表分解成碎片并将它们插入到文件系统的文本文件中.
解决方法
有同样的问题
让我告诉你我做了什么
PHP:
base64_encode(json_encode($bodyData))
然后
json_decode(shell_exec('python ' . base64_encode(json_encode($bodyData)) );
在Python中我有
import base64
和
content = json.loads(base64.b64decode(sys.argv[1]))
正如Em L已经提到的:)
这个对我有用干杯!