У меня есть следующий XML-файл (который содержит данные о более чем 2 ГБ):
<events version="1.0">
<event time="10998.0" type="actend" person="1" link="link36" actType="home" />
<event time="10998.0" type="departure" person="1" link="link36" legMode="car" />
<event time="10998.0" type="PersonEntersVehicle" person="1" vehicle="1" />
....
</events>
А для чтения и анализа данных я стараюсь использовать такой подход: http://boscoh.com/programming/reading-xml-serially.html
Но когда я пробую вещь с пространством имен:
nsmap = {}
for event, elem in etree.iterparse(xmL, events=('start-ns')):
ns, url = elem
nsmap[ns] = url
print(nsmap)
Произошла ошибка:
Traceback (most recent call last):
File "<ipython-input-16-6baf583a11d5>", line 1, in <module>
runfile('C:/Codezeug/Pypy/01/PlayingAround.py', wdir='C:/Codezeug/Pypy/01')
File "C:\Users\AppData\Local\Continuum\anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 668, in runfile
execfile(filename, namespace)
File "C:\Users\AppData\Local\Continuum\anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 108, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Codezeug/Pypy/01/PlayingAround.py", line 22, in <module>
for event, elem in etree.iterparse(one, events=('start-ns')):
File "C:\Users\AppData\Local\Continuum\anaconda3\lib\xml\etree\ElementTree.py", line 1218, in iterparse
pullparser = XMLPullParser(events=events, _parser=parser)
File "C:\Users\AppData\Local\Continuum\anaconda3\lib\xml\etree\ElementTree.py", line 1261, in __init__
self._parser._setevents(self._events_queue, events)
ValueError: unknown event 's'
Как работает этот код и почему он ищет 's'?