Django initial_data.json проблемы с памятью - PullRequest
2 голосов
/ 11 сентября 2010

У меня огромный (400 МБ) файл initial_data.json.Джанго поглощает всю мою память, пытаясь загрузить этот файл.

Предложения?Конечно, у кого-то есть большие файлы initial_data, которые они используют.Я хотел бы подумать о преобразовании этого в xml-файл, но я не знаю, попытается ли Django загрузить все это в память, и я пока не готов испытать это, не будучи уверенным.

1 Ответ

0 голосов
/ 11 сентября 2010

Когда вы загружаете файл json, django направляет его через simplejson, который в итоге делает это:

    return loads(fp.read(),  ...) 

(от django.utils.simplejson)

Другими словами, весь файл читается (fp.read()), прежде чем он передается в декодер. Кажется возможным (но не тривиальным) изменить simplejson для чтения файла по очереди.

Однако в сериализаторе XML используется pulldom , который, по-видимому, выполняет потоковую передачу файла XML. Как таковой, он должен быть намного более эффективным с точки зрения памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...