如何解码从PHP传递的编码数组

时间:2014-12-11 12:04:14

标签: php python arrays json

我在解码从PHP传递的数组时遇到问题。我的PHP代码是

$checkedJson = json_encode($dynamic_species);
$tmp = exec("/Python33/arr_pass.py $pressure $temp $checkedJson");
return $tmp;

如果我打印$ checkedJson我得到

  

{“species1”:“CH4”,“species2”:“C2H6”}作为打印声明

我的python代码是

species_list = sys.argv[3]
species_list_data = json.loads(species_list)
print(species_list_data['species1'])

此python脚本返回空字符串作为输出到php

我第一次在JSON工作,任何人都可以帮助我。

提前致谢

1 个答案:

答案 0 :(得分:0)

这既不是JSON也不是Python问题。你想要的是弄清楚当你的PHP程序通过exec()运行时如何获得输出。基本上你没有输出参数; RTM在php.net。你应该试试:

exec("/Python33/arr_pass.py $pressure $temp $checkedJson", $output);

之后$output将是您的exec脚本发送到其输出的行数组。在您的代码中,$tmp被分配给exec&#d; d事件打印的最后一行,因此可能是一个空行。

另外,你还有一个挑战;将$checkdJson传递给Python脚本的方式将失败。您必须引用它以使其成为一个命令行参数,因此您可能需要

exec("/Python33/arr_pass.py $pressure $temp '$checkedJson'", $output);

(注意额外的单引号)。