【问题标题】:How can I send a JSON object from a Python script to jQuery?如何将 JSON 对象从 Python 脚本发送到 jQuery?
【发布时间】:2011-05-17 23:38:18
【问题描述】:

我查看了 API 和各种资源,但似乎无法掌握使用 AJAX 从 Python 脚本中获取 JSON 对象的窍门。我确定问题在于我如何处理 JSON 对象。

首先,在我的服务器上的 python 脚本中,我生成并打印一个 JSON 数组

import json
print "Content-type: application/json"
print 
print json.dumps(['Price',{'Cost':'99'}])

然后,在一个单独的 html 文件中,我尝试类似

<body>
<div id="test">
</div>

<script>
 $(document).ready(function() {
  $.getJSON("http://www.example.com/cgi-bin/makeJSON.py", function(data) {
        $('#test').html("JSON Data: " + data.Price);
    });
});
</script>
</body>

但我什么也得不到。我确定data.Price 是错误的,但我也很确定我应该做点什么而不是仅仅打印json.dumps 的结果

感谢任何帮助!在此先感谢,如果这是一个明显的问题,我们深表歉意。

【问题讨论】:

    标签: jquery python ajax json getjson


    【解决方案1】:

    在您的情况下,您已将 JSON 响应包含在 array 中。要访问价格,您需要访问data[0]。您需要正确构建 JSON 数据。

    您的 Python 脚本中的以下更改应该允许您访问 data.Price。如果您仍然遇到任何问题,请告诉我。

       import json
       print "Content-type: application/json"
       print 
       response={'Price':54,'Cost':'99'}
       print(json.JSONEncoder().encode(response))
    

    【讨论】:

    • 没问题,但我们需要正确构造响应 JSON 数据。假设PriceCost 都是python 字典中的简单键,当发送到客户端时,可以分别使用data.Pricedata.Cost 访问。
    【解决方案2】:

    请提供更多关于您要执行的操作的背景信息。您可以将 JSON 对象硬编码到 HTML 中吗?或者,您是否尝试做一些更动态的事情,例如 AJAX?

    对于前者,查看 Python 生成的页面的 HTML 源代码。它必须看起来像:

    <script type="text/javascript">
       var MY_GLOBAL_JSON_OBJECT = { ... };
    </script>
    

    或者您可以在实际使用它的函数中吐出 JSON 对象,而不是先将其分配给全局变量。

    【讨论】:

    • 谢谢马特!我得到了返回正确 JSON 对象的脚本。是的,它是动态的,所以我不能硬编码它。现在唯一的问题是我不知道如何访问存储的值,因为 data.Price 不起作用
    猜你喜欢
    • 2012-04-26
    • 2018-02-08
    • 2014-09-11
    • 2014-07-04
    • 2012-06-14
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 2019-07-04
    相关资源
    最近更新 更多