gpt4 book ai didi

python - 将 python (django) 数据序列化为 javascript

转载 作者:太空宇宙 更新时间:2023-11-03 18:59:10 24 4
gpt4 key购买 nike

我正在尝试使用 json.dumps 将数据返回到 javascript,以便向用户显示数据。

按下按钮时 Dajax 调用:Dajaxice.chamber.ATableUpdate(TableUpdate);

我的ajax函数:

@dajaxice_register
def ATableUpdate(request):
mean = [[900, 2.1],[1000, -20.4],[1100, -15.4],[1200, -30.5]]
numpy.savetxt("table_mean.txt", mean)
mean2 = numpy.loadtxt("table_mean.txt")
return json.dumps({"mean": mean})

如果我返回如图所示的平均值,则一切正常,但如果我返回mean2(使用 numpy 从文件中读取的相同值),则它不起作用,并给出错误:“不是 JSON 可序列化”

该代码只是从文件中提取数据并在表格中向用户显示数据。该文件将使用连接到系统的传感器的值进行更新。

关于如何序列化我的 numpy 数据有什么想法吗?或者如何在不使用 javascript 且仅使用 djangos 模板的情况下将数组返回到我的 html?

用于打印表格的 HTML 类

<div class="box_result_inner">
<table cellspacing="0px" cellpadding="1px" border="1px" id="tablehtml">
</table>
</div>

Javascript

function TableUpdate(data){
var col=data.mean[0].length;
var row=data.mean.length;
buffer='';
for(var r = 0; r < row; r++){
buffer += "<tr>";
for(var c = 0; c < col ; c++){
buffer += "<td>" + data.mean[r][c] + "</td>";
}
buffer += "</tr>";
}
document.getElementById("tablehtml").innerHTML = buffer;
}

更新不幸的是 list 对我不起作用,因为它在每一行前面添加了 array,但是,它可以使用:

with open("chamber/control/data/table_mean.txt", 'wb') as fp:
json.dump(mean, fp)

with open("chamber/control/data/table_mean.txt", 'rb') as fp:
mean2 = json.load(fp)

return json.dumps({"mean": mean2})

最佳答案

Python JSON 模块只能处理列出的某些 native Python 类型 here .

numpy.loadtxt函数返回 array 类型,因此不可序列化。

相反,将数组转换为列表,然后转换为JSON:

mean2 = list(numpy.loadtxt("table_mean.txt"))
return json.dumps({"mean": mean})

根据 numpy 数组的大小,此操作可能会很昂贵。

关于python - 将 python (django) 数据序列化为 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16451849/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com