2011-02-23 2 views
1

json-data를 사용하여 파일을 읽으 려 할 때, load (data) simplejson 메서드를 사용하고 "표준"또는 문서화 된 방법 대신 레코드의 각 열에 대한 값을 나타내는 사전을 만듭니다. 나는 각 레코드에 대해 장고 ORM 객체를 생성하는 것을 피하기를 원하기 때문에django json 데이터를 deserialize 한 번에 한 레코드 덤프?

for obj in serializers.deserialize("json", data): 
    # do something with obj 

, 나는 그냥 내가 이득 속도에 대한 일반 SQL을 사용하여 데이터베이스에 저를 삽입 할 수 있도록 각 개체를 나타내는 사전을합니다. 문제는로드 (데이터)가 모든 데이터를 메모리로 읽어 들여야하므로 메모리 사용량을 낮게 유지하고 json 데이터의 항목을 읽지 않으려합니다. 하나의 레코드에 대한 데이터를 산출하는 반복자를 얻을 수 있습니까? 그리고 둘째, json 데이터를 deserialize 할 때 django orm 객체의 전체 생성을 건너 뛰고 값의 사전을 가져올 수 있습니까?

의견 및 의견을 환영합니다.

감사합니다.

답변

1

ORM 개체를 만들지 않으려면 장고 직렬화 복원 방법을 사용할 필요가 없습니다.

from django.utils import simplejson 
my_data = simplejson.loads(data) 
+0

하지만 증언 요구 무산로드하는 메모리에 전체 JSON 개체 : 간단하게 기본 simplejson 라이브러리를 사용하여 JSON을로드? 나는 그것을 피할 수있는 방법을 찾고 있습니다. 어쨌든 입력 해 주셔서 감사합니다 :-) – Weholt

+0

왜 그런가요? 방금 Django 모델 인스턴스를 만드는 것과 비교할 때 상당히 적은 사전을 만드는 것입니다. 어쨌든 JSON 객체를 반복적으로 비 직렬화하는 방법에 대해서는 알지 못합니다. –

관련 문제