2012-05-15 2 views
2

저는 현재 매우 큰 사전 JSON 사전을 만드는 프로젝트에 참여하고 있습니다. 이 전체 객체를 한번에 메모리에 저장하는 것은 고통 스러울 것입니다. 그리고 키에 의해 사전 키로 들어가는 것을 계산할 것이므로, 파일에 각 키를 쓰는 방법을 기대했습니다. 결국 json을 다음과 같이 덤프 할 것입니다. 곧 그 가치가 계산됩니다. 이 방법을 사용하면 한 번에 하나 이상의 키/값 쌍을 메모리에 보유 할 필요가 없습니다. 이는 굉장 할 것입니다. 난 그냥 수동으로 각 JSON subdictionary I 인쇄 주위에 쉼표와 함께 JSON에서 사전의 시작과 끝을 인쇄하는 경우Python 2.7에서 Part별로 파일을 보내서 Json 객체를 작성하는 방법은 무엇입니까?

{key: {key: val, key: val, key:val, etc...}, 
key: {key: val, key: val, key:val, etc...}, 
key: {key: val, key: val, key:val, etc...}, 
etc... 
} 

이 할 매우 어렵지 않을 것이다 :

개체의 형식은 하지만 파이썬의 JSON 라이브러리 중 하나를 통해이를 수행 할 수있는 방법이 있어야한다고 생각한다. 아이디어?

답변

0

파이썬에 내장 된 json 모듈은 전체 개체를로드하고 덤프하므로 직접 수정할 수 없습니다. 사용 가능한 이벤트 기반 ("SAX style") JSON 파서가 있습니다 (예 : yajl). Python bindings입니다.

는 개인적으로 내가해야하지 않는 한 제 3 자 종속성을 사용하지 않으려 고, 그래서 아마 수동으로 시작/종료/키를 인쇄하고, JSON 내장 모듈을 사용하여 갈 것입니다. 아니면 모든 것을 기억하십시오. 얼마나 많은 메모리가 실제로 필요합니까? 일단 프로파일을 작성하고 문제가 있다고 판단한 후에 만 ​​최적화를 수행하십시오. :-)

관련 문제