Bri*_*Cox 3 php python arrays soap
我正在使用php设置一个SOAP服务器.在处理SOAP请求时,我需要调用一些现有的python脚本.这些脚本通常返回3个值:成功,描述和数据.
如何将所有三个值传递回php?
我的要求是:
exec('python test.py', $output);
Run Code Online (Sandbox Code Playgroud)
test.py会:
from getData import getData
status, description, data = getData()
return status, description, data
Run Code Online (Sandbox Code Playgroud)
我现有的python看起来像这样:
def getData():
database = Database()
# get all the Data from the db
data = database.getData()
if data is None:
return False, "...notes...", ""
return True, "...notes...", data
Run Code Online (Sandbox Code Playgroud)
我不确定test.py中的返回是否正确.但即使是这样,当我看到var_dump($ output)时,我看到的只是"数组"
有人有主意吗?
TIA,
布赖恩
由于exec()
调用将shell输出接收到变量中$output
,因此无法从Python函数接收返回的字符串.您必须打印它们,而不是返回它们,并且每条打印的线都将进入exec()
阵列$output
.
主脚本必须将值打印到stdout:
from getData import getData
status, description, data = getData()
# Print the values
print("STATUS:", status)
print("DESCRIPTION:", description)
print("DATA:", data)
Run Code Online (Sandbox Code Playgroud)
在PHP中,检查您获得的输出:
exec("python test.py", $output);
var_dump($output);
Run Code Online (Sandbox Code Playgroud)
您需要将print
Python中的语句格式化为可以在PHP中轻松解析值的内容,例如每行一项,或者键:值对explode()
.
归档时间: |
|
查看次数: |
5972 次 |
最近记录: |