在JavaScript中检索Python变量

时间:2016-12-04 02:47:41

标签: javascript python parsing multiple-languages

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

例如,我使用Python解析XML以给我一个int:

parse code parse code parse code
i = 3

然后在我的JavaScript中,我可以使用变量“i”来表示某些功能:

code for my function
r = 30 / i 

然后r值等于10

1 个答案:

答案 0 :(得分:0)

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

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

  1. 动态生成JS并将其包含在python脚本(HTML响应)的输出中
  2. 这样做的一种方法是通过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中的适当位置。

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

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