p
Честный разбор с dom силами lxml приводил к потреблению в 2-3гб памяти.
Писать потоковый парсер мне было лень, так что я взял header only конвертер xml => json на cpp.
Плюсовый конвертер отрабатывал за ~ 400ms, ещё столько же - разбор json в питонячий dict