我有一个Python脚本,使用print
和shell_exec()
将大量文本输出到PHP。我还需要在两者之间发送一个字典,以存储一些脚本信息。以下是我的代码的简化版本:
Python
import json
# Lots of code here
user_vars = {'money':player.money}
print(user_vars)
print(json.dumps(user_vars))
它会在 PHP 中输出:
{'money': 0} {"money": 0}
所以,除了使用双引号之外,JSON与其它的东西是一样的。
PHP
如果我想要使用JSON来传输数据,我会使用以下代码(print(json.dumps(user_vars))
),它会输出{"money": 0}
,请注意双引号:
<?php
$result = shell_exec('python JSONtest.py');
$resultData = json_decode($result, true);
echo $resultData["money"];
?>
我有两个问题:
- 使用
print(user_vars)
和print(json.dumps(user_vars))
,这两种方式有什么区别吗?是否有特殊原因要选择其中一种? - 除了将
user_vars
/json.dumps(user_vars)
写入一个实际的.json
文件中,还有其他方法可以传输这些数据,而且在最终的 PHP 页面中不会被看到吗?或者我处理这个问题的方式有误?
我的代码是基于这里的问题。
print()
甚至可能无法被Python本身可靠地解析。 - Sammitchprint()
命令? - Tiskolin