jquery - 将 JSON 从 python 脚本发送到 JQuery

标签 jquery python html json ajax

我是 Jquery 的新手,下面的脚本不会在 HTML 页面上产生任何输出。

问题:

在我的脚本中,我使用 requests 库将 GET 请求发送到返回 JSON 对象的 Flask URL。然后需要将该对象发送到 JQuery,然后 JQuery 将在网页上输出 JSON 对象。如果我使用 response.text 发送数据,它工作正常,但如果我使用 response.json() 发送数据,它不会输出任何内容。不过,我需要将其作为 JSON 对象发送,以便我可以从中提取所有数据并将其放在 HTML 元素上。

getajaxtest.py:

import requests
import json
def send_log_ajax():
     url = 'http://xx.com/returnjsonobj'
     response = requests.get(url)
     return response.json()
if __name__ == '__main__':
     ajax_var = send_log_ajax()
     print(ajax_var)

HTML 和 JQuery:

 <html>
    <head><script
  src="https://code.jquery.com/jquery-3.2.1.min.js"></script></head>
    <body>
    <div style="border:1px solid black;background-color:lightgray">
        <p id="transactioninfo">Loading Transaction Information...</p>
    </div>
    <script>
    function getlogs() {

    var url = 'www.myserver.com/getajaxtest.py';

        $.ajax({
           type: 'GET',
           url: url,
           dataType: 'json',
           success: function(data) {

           $("#transactioninfo").html(data)
        },

        error: function(e) {
            console.log(e.message);
        }
    });

    }
    $(document).ready(function(){

        setTimeout(function(){getlogs();}, 2000);
        setInterval(function(){getlogs();}, 2000);

    });

    </script>

    </body>
    </head>
    </html>

最佳答案

您正在打印 Python 数据结构,而不是 JSON。 requests.json() 解码 Flask 对 Python 字典、列表、字符串、数字、 bool 值以及可能的 None 的响应。那不是 JSON 数据。

只需将您的数据保留为 JSON 数据,然后打印您收到的文本。您的脚本只是一个代理,无需解释 JSON 数据。

如果您必须解码(也许您想对所包含的数据进行一些转换),请确保您再次编码回 JSON。。使用json.dumps()执行此操作时会生成一个新的 JSON 编码字符串。

关于jquery - 将 JSON 从 python 脚本发送到 JQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45961528/

相关文章:

html - 如何更改html表格中第一行的背景颜色和所有其他行的替代颜色

javascript - 尝试使用 javascript + html 返回上一页

javascript - jQuery - element.on 点击​​匹配案例

javascript - 将 Excel 工作表转换为 JSON 并将数据发送到 SharePoint 列表——改为获取空对象

python - 雨流计数算法

html - 随着内部 Div 的扩展,使 HTML 列变宽

javascript - 如何在 jQuery/Javascript 中生成鼠标滚轮事件?

python - Pandas 显示列号

python - 有没有办法停止 docker 容器中的命令

PHP:获取特定标签内容的数组