【问题标题】:Pass JSON object to Python Script将 JSON 对象传递给 Python 脚本
【发布时间】:2014-06-06 08:32:38
【问题描述】:

我想将具有许多元素的 {key : value} 形式的 JSON 对象传递给 python 脚本。 我可以通过 Ajax 发送 JSON 对象,因为我可以在 Ajax 函数的响应变量中看到成功。

我正在使用 cgi.FieldStorage() 来获取 POST 数据。我想遍历接收到的 JSON 对象元素并将键和值存储在 variables 中。稍后,我想在通过 Python 脚本打印 HTML 时使用这些变量。我不知道如何进行和迭代。

【问题讨论】:

    标签: javascript jquery python ajax json


    【解决方案1】:

    您不需要cgi.FieldStorage,只需阅读标准输入:

    import sys
    import json
    
    data = json.load(sys.stdin)
    

    在客户端,您还必须手动将数据转换为 json 字符串:

    $.ajax({
        url: "/city/cgi-bin/test1.py",
        type: "post",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: JSON.stringify({'lat':30.5 , 'lon' : 4.5}),
        success: function(response){
            //window.location="http://mycity.parseapp.com/city/cgi-bin/test1.py"
            console.log(response.message);
            console.log(response.keys);
            console.log(response.data);
    
        }
    });
    

    【讨论】:

    • 我正在使用 Ajax 和 Jquery 将数据从 Javascript 传递到 Python 脚本。它不需要 cgi.FieldStorage() 在 Python 脚本中获取 POST 数据吗?
    • stdin 是 POST 数据进入 cgi 脚本的方式。 cgi.FieldStorage 也只能从标准输入读取。试试看;-)
    • 它显示内部服务器错误。我在 python 脚本中使用你的代码。我还想以 HTML 中键、值对的形式打印“数据”的内容。我该怎么做 ?打印 "

      " , json.dumps(data , indent= 2) , "
      "

    • 这是什么内部服务器错误;错误日志中有什么? cgi 脚本是否正常工作?
    • 这是我的 python 脚本pastebin.com/vZY32Cpg,这是我使用 jquery pastebin.com/UAi0DNYD 的 ajax 代码这两个都在工作。现在我想将键值对存储在 python 脚本中,并使用同一 python 脚本中的 HTML 输出它们。我无法遍历 JSON 对象并将它们存储在 python 脚本中。
    猜你喜欢
    • 2016-08-03
    • 2018-02-10
    • 2012-11-29
    • 2011-01-23
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 2013-06-18
    • 1970-01-01
    相关资源
    最近更新 更多