사용자에게 데이터를 표시하기 위해 json.dumps를 사용하여 데이터를 자바 스크립트로 반환하려고합니다.자바 스크립트에 파이썬 (django) 데이터의 직렬화
버튼을 누를 때Dajax 전화 : Dajaxice.chamber.ATableUpdate(TableUpdate);
내 아약스 기능 :
@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 데이터를 직렬화하는 방법에 대한 아이디어가 있으십니까? 또는 자바 스크립트 및 djangos 템플릿을 사용하여 않고 내 html로 배열을 반환하는 방법? 이 모든 행 앞에 배열을 추가로
HTML 클래스는 나를 위해 작동하지 않았다 자바 스크립트를
<div class="box_result_inner">
<table cellspacing="0px" cellpadding="1px" border="1px" id="tablehtml">
</table>
</div>
에
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})
답변 해 주셔서 감사합니다. 하지만 여전히 목록을 사용하여 오류가 발생합니다. mean2를 인쇄하려고 할 때 모든 행 앞에 array ([900, 2.1]), array ([1000, -20.4]) "array"가 인쇄됩니다. 그러나 파일에서 작성하고 읽는 방식이 다르게 작동합니다. – madsendennes
@madsendennes 데이터 입력 형식을 표시하지 않았지만 배열 배열이있는 것처럼 보입니다. 따라서 각 배열을 목록 유형으로 변환해야합니다. 대답의 전제는 남아 있습니다. 형식은 JSON serializer에서 지원하는 형식으로 변환해야합니다. –