我正在尝试使用 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})
如果我返回值 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;
}
更新 不幸的是列表对我不起作用,因为它在每一行前面添加了数组,但是,它可以使用:
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})