在 JavaScript 中检索 Python 变量

Retrieve Python variable in JavaScript

有什么方法可以检索使用 Python 脚本创建的变量并在 JavaScript 脚本中使用它?

例如,我使用 Python 解析 XML 得到一个整数:

parse code parse code parse code
i = 3

然后在我的 JavaScript 中,我可以将该变量 "i" 用于某些功能:

code for my function
r = 30 / i 

则r值等于10

不直接,因为它们是单独的进程,通常在不共享内存或状态的单独计算机上。您在问题中没有提供太多上下文,所以我假设您在网络服务器中是 运行 python 并在 html 或 html 中使用 JS 输出 HTML 或作为外部来源链接。

如果是这种情况,您有两个选择。

  1. 动态生成您的 JS 并将其包含在 python 脚本的输出中(HTML 响应)

一种方法是通过 open() 函数在 python 脚本中加载 Javascript。然后在前面加上一个字符串,这是有效的 javascript 代码并定义一个变量或 JSON 对象。

假设您有这个 javascript 文件:

javascript.js

alert(my_js_data["field1"]);
alert(my_js_data["field2"]);

这是您的 python 脚本:

import json

# define your data you want in your javascript variable
my_data = {'field1': 'string value', 'field2': 100}

# open an existing script that is ready to use the my_js_data variable
# we are about to generate
js = open('javascript.js', 'r')

# dynamically generate javascript code
javascript_out = "var my_js_data = JSON.parse('{}');".format(json.dumps(my_data))
javascript_out += js.read()

现在,python 中的 javascript_out 变量是一个如下所示的字符串:

var my_js_data = JSON.parse('{"field1": "string value", "field2": 100}');

alert(my_js_data["field1"]);
alert(my_js_data["field2"]);

在没有更多上下文的情况下,我无法确切地告诉您如何使用 javascript_out 变量,但您需要将其包含在 HTML.[=13 中的适当位置=]

请注意,如果没有 python 脚本,javascript.js 文件将无法工作,因为 my_js_data 变量将不会被定义。

  1. 让您的 Javascript 向您的服务器发出另一个 HTTP (ajax) 请求,然后 return 一个包含您的数据的 JSON 字符串。