javascript - 如何使用 Eel 将 json 对象从 Python 函数传递到 Javascript,您可以在其中使用和操作 json

标签 javascript python jquery json eel

这个问题可能有点令人困惑,所以让我给你一些背景知识。 Eel 是一个 Python 模块,您可以在其中使用 Python 编写的函数并在 Javascript 中使用它们,反之亦然。我想要做的是获取一个由 Python 函数生成的 json,将其放入 Javascript 中,然后根据从 Python 端获取的 json 创建一个表。这是一个例子。

python.py

def json_example():
    json = [
        {
            "key": "value1"
        },
        {
            "key": "value2"
        }
    ]
    return json

js.html

<body>
    <div></div>
</body>
<script>
    function js_example() {
        # This is where the function from Python is called
        var json_obj = eel.json_example();
        var tbl = $("<table/>").attr("id", "example_table");
        $("div").append(tbl);
        for(var i=0; i<json_obj.length; i++){
            var tr="<tr>";
            var td="<td>"+obj[i]["key"]+"</td></tr>";
            $('#example_table').append(tr+td);
        }
    }

我分别测试了这两个功能,并做了一些改动,它们都可以正常工作。然而,这就是问题的开始。出于某种原因,Javascript 部分没有从它从 Python 代码调用的函数中获取任何信息。变量“json_obj”应该等于我在 Python 函数中创建的 json,但由于某种原因,该函数的返回值没有创建可以在 Javascript 中操作的有形数据,基本上什么都不返回。鳗鱼转移本身也有效。如果将“return”替换为“print”,它将在控制台中打印 json。

此外,请不要告诉我只将 json 本身放在 Javascript 中。我有理由需要来自 Python 端的 json。

基本上,这是我的问题:如何获得 Python 函数来创建可以在 Javascript 中操作的值?

最佳答案

问题在于,当 eel 公开一个函数时,它实际上所做的是创建一个新函数,该函数将返回一个包含 python 函数返回值的 promise
所以你应该有这样的东西:

let json_obj = ''; 
eel.json_example()(x => json_obj = x);

如果您需要有关回调的更多帮助,请参阅 https://github.com/ChrisKnott/Eel .

关于javascript - 如何使用 Eel 将 json 对象从 Python 函数传递到 Javascript,您可以在其中使用和操作 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48589123/

相关文章:

Javascript HighCharts 解析 CSV

javascript - 错误消息而不是 NaN 输出和负 'Nett Payment' 输出

jquery - 使用 jQuery animate 调整高度时 IE 边框困惑

jquery - DOM 元素在位置 :absolute 时不显示

javascript - Highcharts : reset the graph

javascript - Angular ui-router仅刷新页面的一部分,需要多个 View 吗?

python - 在 IBM Watson 中部署笔记本

python - 如何在 SQLAlchemy Alembic 迁移中更新记录?

tensorflow 中的Python_io

javascript - Jquery 循环和递增