如何将 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 数据。假设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 不起作用

以上是关于如何将 JSON 对象从 Python 脚本发送到 jQuery?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Jinja 将数据作为 JSON 对象从 Python 发送到 Javascript [重复]

将数据从 PHP 脚本发送到 iOS

如何将数据从 Perl 发送到 Python

如何将 JSON 对象从 React Native 发送到 Laravel 服务器?

如何在 IOS 上使用 Swift 解析 JSON,从 PHP 服务脚本发送?

如何将参数从命令行传递到 python 脚本以读取和更新 json 文件中存在的某些键的值