将Python数组传递给javascript?

将Python数组传递给javascript?,javascript,jquery,python,html,Javascript,Jquery,Python,Html,我不熟悉HTML/javascript。我正在运行一个本地服务器,带有一个html/javascript文件和一个单独的python脚本 问题:如何将python数组传递给javascript变量? 迄今为止的工作: 我已将数组写入文件data.txt: 1 32.1 2 10.0 但如果更简单的话,我可以把它转换成JSON格式 以下是我目前的进展情况: var x_pos = []; jQuery.get('http://127.0.0.1:8000/data/data.txt',fun

我不熟悉HTML/javascript。我正在运行一个本地服务器,带有一个html/javascript文件和一个单独的python脚本

问题:如何将python数组传递给javascript变量?

迄今为止的工作: 我已将数组写入文件
data.txt

1  32.1
2  10.0
但如果更简单的话,我可以把它转换成JSON格式

以下是我目前的进展情况

var x_pos = [];
jQuery.get('http://127.0.0.1:8000/data/data.txt',function(data){

// ??? Code here ???

});

console.log(x_pos[0])

注意:如果有更简单的方法,我愿意接受建议。谢谢。

改用JSON。然后您可以将其解析为

jQuery.get('http://localhost/data.txt', function(data) {
  var xy = JSON.parse(data);
});
并用作

alert(xy['1']); // or xy.propertyname if it is not-numeric
您的数据结构如下

{
  "1": 32.1,
  "2": 0
}

只需为此创建一个json结构,然后执行
json.parse(data)

以下是您的结构:

{x:[1,2,3,4],y:[32.1,10.0,76.3]}
var x_数组=[];
var x_array = [];    
var y_array = [];     

jQuery.get('http://localhost/test/data.txt',function(data){
    var lines = data.split(/\r\n|\n/g);
    for (var i = 0; i < lines.length; i++) {
        line = lines[i].split(/\s+/g);
        x_array.push(line[0]);
        y_array.push(line[1]);
    }
    console.log(x_array);
    console.log(y_array);
});
变量y_数组=[]; jQuery.get('http://localhost/test/data.txt,函数(数据){ 变量行=data.split(/\r\n |\n/g); 对于(变量i=0;i
解决方案之一是使用拆分。它把绳子劈开了

    var newData = [];
    data = data.split('\n');
    data.forEach(function(entry){
      entry = entry.split(' ');
      newData.push({
        x : entry[0],
        y : entry[1]
      });
    });
    console.log(newData);

您需要使用正则表达式来解析文本文件。不能仅对非JSON格式的字符串使用
JSON.parse()


你可以在每一个换行符处拆分,然后在数字和值之间的空格处拆分。这是一个文本文件,你如何在不是json格式的东西上使用json.parse?@Daniel_L这是一个更好的解决方案。OP规定,如果有更好的方法通过更改文本文件的格式和/或扩展名来处理解析,我们应该建议这样做,因此我同意将文本置于json格式将极大地简化解析,并为OP提供将数据转换为变量的最简单方法。@brso05我最初没有看到这一点。我已相应地调整了我的投票。而不是在网上乱发评论bold@anon0909JSON使用起来非常舒适,易于阅读,几乎每种编程语言都支持它,这使它成为客户端和服务器之间通信的最佳方式之一。如果OP在回车时有
\r\n
,该怎么办?更新以处理\r\n大小写以及每行文本文件中两个值之间的一个或多个空格。是的,我也会这样解析文件
拆分('\n')
和line
split('\s+')
@MazzCris谢谢,这工作得很好…除了
控制台.log(x_数组)
jQuery.get(…)
调用之外返回
未定义的
。有什么建议吗?我想我对作用域有一个句柄:/@anon0909 jQuery.get()是异步的(这里解释的是一个速记Ajax函数:)。无论如何,我认为在这种情况下应该得到一个空数组(因为它是初始化的),而不是
未定义的
$.get("http://localhost/data.txt", parse);

function parse(str) {
    var lineBreak = /\r\n/g;
    var space = /\s/g;
    var tmp = str.split(lineBreak).map(function(l) {
        var split = l.split(space);
        return { key: split[0], val: split[1]  };
    });
    var data = JSON.stringify(tmp, null, 2);
    $("#data").text(data);
}