我查看了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
的结果
任何帮助表示赞赏!如果这是一个显而易见的问题,请提前致谢,对不起。
答案 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对象,而不是先将它分配给全局变量。