将JSON String从PHP传递到Python



我试图在PHP脚本中调用Python脚本。但是,我似乎无法弄清楚如何将输入传递到Python脚本。我使用的代码如下:

$input = '[{"item": "item1"}, {"item": "item2"}, {"item": "item3"}]';
$output = passthru("/usr/bin/python3.5 /path/python_script.py $input");

Python中的输出是通过将字符串划分为spaces(即

['/path/python_script.py', '[{item:', 'item1},', '{item:', 'item2},', '{item:', 'item3}]']

将JSON字符串传递到Python的最直接方法是什么?

要解决您的问题,您需要将JSON作为字符串传递。在您的php中,这是一个字符串,但是当您调用PassThru时,它会转换为命令行。因此,它称为Python:

/usr/bin/python3.5 /path/python_script.py [{"item": "item1"}, {"item": "item2"}, {"item": "item3"}]

python确实将其拆分在空间上,并将每个部分视为参数。解决方案是将其包裹在字符串中以进行通行:

$output = passthru("/usr/bin/python3.5 /path/python_script.py '$input'");

然后在您的Python脚本中您可以使用JSON.LOADS如下所述。

如果您不能将其包装在字符串中,则可以在yout python脚本中执行此操作以手动将其放在一起:

''.join(sys.argv[1:]) # leaving out the first index, filename.

使用Python脚本作为CGI脚本,然后将参数传递给Python CGI脚本,就像您将参数传递给API或URL一样。

Python CGI教程:https://www.tutorialspoint.com/python/python/python_cgi_programming.htm

相关内容

  • 没有找到相关文章

最新更新