如何将 JSON 对象从 Python 脚本发送到 jQuery?
Posted
技术标签:
【中文标题】如何将 JSON 对象从 Python 脚本发送到 jQuery?【英文标题】:How can I send a JSON object from a Python script to 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
的结果
感谢任何帮助!在此先感谢,如果这是一个明显的问题,我们深表歉意。
【问题讨论】:
【参考方案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 数据。假设Price
和Cost
都是python 字典中的简单键,当发送到客户端时,可以分别使用data.Price
和data.Cost
访问。【参考方案2】:
请提供更多关于您要执行的操作的背景信息。您可以将 JSON 对象硬编码到 HTML 中吗?或者,您是否尝试做一些更动态的事情,例如 AJAX?
对于前者,查看 Python 生成的页面的 HTML 源代码。它必须看起来像:
<script type="text/javascript">
var MY_GLOBAL_JSON_OBJECT = ... ;
</script>
或者您可以在实际使用它的函数中吐出 JSON 对象,而不是先将其分配给全局变量。
【讨论】:
谢谢马特!我得到了返回正确 JSON 对象的脚本。是的,它是动态的,所以我不能硬编码它。现在唯一的问题是我不知道如何访问存储的值,因为data.Price
不起作用以上是关于如何将 JSON 对象从 Python 脚本发送到 jQuery?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Jinja 将数据作为 JSON 对象从 Python 发送到 Javascript [重复]
如何将 JSON 对象从 React Native 发送到 Laravel 服务器?