如何将Python脚本中的JSON对象发送到jQuery?

时间:2010-11-30 16:18:32

标签: jquery python ajax json getjson

我查看了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的结果

任何帮助表示赞赏!如果这是一个显而易见的问题,请提前致谢,对不起。

2 个答案:

答案 0 :(得分:7)

在您的情况下,您已将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))

答案 1 :(得分:1)

请提供更多关于您尝试做的事情的背景信息。你能把JSON对象硬编码到HTML中吗?或者,你是否正在尝试做一些更有活力的事情,比如AJAX?

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

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

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