Javascript 使用JQuery调用python脚本

Javascript 使用JQuery调用python脚本,javascript,jquery,python,Javascript,Jquery,Python,有人能给出一个简短的代码示例,说明如何使用JQuery从Javascript调用python脚本并解析结果,这是一个python dict吗?低于我现在拥有的,但不起作用 Python代码(script.py): 中间PHP(Intermediate.PHP): Javascript: <script type="text/javascript" src="jquery-1.8.3.js"></script> <script type="text/jav

有人能给出一个简短的代码示例,说明如何使用JQuery从Javascript调用python脚本并解析结果,这是一个python dict吗?低于我现在拥有的,但不起作用

Python代码(script.py):

中间PHP(Intermediate.PHP):


Javascript:

  <script type="text/javascript" src="jquery-1.8.3.js"></script>
  <script type="text/javascript">
   $.ajax({
    url: 'intermediate.php',
    type: 'POST',
    dataType: "json",
    success: function(data){
         alert(obj.val1);
    }
   });
  </script>

$.ajax({
url:'intermediate.php',
键入:“POST”,
数据类型:“json”,
成功:功能(数据){
警报(obj.val1);
}
});

您的PHP看起来不错。问题可能出在javascript代码中。您的obj变量未定义。您必须通知data.val1而不是obj.val1


$.ajax({
url:'intermediate.php',
键入:“POST”,
数据类型:“json”,
成功:功能(数据){
警报(data.val1);
}
});

可能是成功函数出了问题,将obj更改为数据:

success: function(data){
     alert(data.val1);
}

在PHP中,您不能
echo
数组,它只打印“array”(正如您所注意到的)。要打印存储在数组中的每一行,需要这样的内容:

exec("python script.py", $output);
echo implode( "\n", $output );

此外,如注释中所述,Python脚本必须实际输出您想要传递给PHP的内容,以便
exec()
可以收集它。您不能使用
return
将数据从Python传递到PHP。

将Python文件更改为:

import json
def pythonFuntion():
    dict = {"val1":"this is x", "val2":True};
    return json.dumps(dict);
print( pythonFuntion() );
然后,在PHP中;使用以下命令:

<?php
  exec("python script.py", $output);
  echo $output[0];
?>


您的jQuery也可以工作。(刚刚在我的系统上测试过)。

不确定,但是Python函数不需要适当的缩进吗?不工作意味着什么?有错误消息吗?我看不到任何逻辑错误。你确定路径是正确的吗?@MaVe试试打印($output),看看上面写的是什么。(如果你直接评论答案会更好。)。。。这就是问题所在。你需要把它打印出来。不能将Python中的内容“返回”到PHP中。
exec("python script.py", $output);
echo implode( "\n", $output );
import json
def pythonFuntion():
    dict = {"val1":"this is x", "val2":True};
    return json.dumps(dict);
print( pythonFuntion() );
<?php
  exec("python script.py", $output);
  echo $output[0];
?>