디스크의 CSV (x, y 좌표)를 읽고 웹 프런트 엔드에서 렌더링 할 수 있도록 JSON 형식으로 출력하는 API를 작성하고 싶습니다. 문제는 많은 데이터 포인트 (30k의 순서)가 있으므로 x와 y의 numpy 배열에서 JSON으로 이동하는 것이 실제로 느리다는 것입니다.Python에서 JSON을 만드는보다 효율적인 방법
이것은 JSON 형식의 데이터를 가져 오는 현재 함수입니다. 이 속도를 높이는 방법이 있습니까? 각 2 차원 포인트에 대해 큰 데이터 구조를 갖는 것은 매우 불필요한 것처럼 보입니다.
def to_json(xdata, ydata):
return [{"x": x, "y": y} for x, y in zip(xdata, ydata)]
이 unnessacary 변수의 사용을 제거하고 청소기 : 같은
def to_json(xdata, ydata):
data = []
for x, y in zip(xdata, ydata):
data.append({"x": x, "y": y})
return data
웹 프런트 엔드는 어떻게 렌더링됩니까? Dicts는 다소 부피가 크지 만 json.dumps ([xdata.tolist(), ydata.tolist()]) 두 개의 목록을 전달할 수 있습니다. 플롯이 어쨌든 두리스트를 원할 가능성이 있습니다. – tdelaney
nvd3을 사용하고 있습니다. 내가 지원하는 대체 데이터 형식에 대한 정보는 찾을 수 없지만 그렇게하면 많은 일이 훨씬 쉬워 질 것입니다. http://stackoverflow.com/questions/23643487/json-data-format-in-nvd3-chart – Nate
클라이언트 자바 스크립트 측면에서 목록을 변환 할 수 있다고 생각합니다. 일부 데이터 페이로드는 저장하지만 스트리밍 미디어 세계에서는 가치가 없을 수도 있습니다. (만약 nvd3가 dict와 괜찮 으면 어쩌면 전문가들이라고 생각할 수있을 것입니다!) – tdelaney