Я новичок и пытаюсь проанализировать некоторые данные из. xml файлов, структура которых имеет вид, приведенный ниже.
<parking id="pucpr">
<space id="1" occupied="0">
<rotatedRect>
<center x="300" y="207" />
<size w="55" h="32" />
<angle d="-74" />
</rotatedRect>
<contour>
<point x="278" y="230" />
<point x="290" y="186" />
<point x="324" y="185" />
<point x="308" y="230" />
</contour>
</space>
<space id="2" occupied="0">
<rotatedRect>
<center x="332" y="209" />
<size w="56" h="33" />
<angle d="-77" />
</rotatedRect>
<contour>
<point x="325" y="185" />
<point x="355" y="185" />
<point x="344" y="233" />
<point x="310" y="233" />
</contour>
</space>
.
.
.
</parking>
В разных папках находятся сотни таких файлов. Я написал код ниже для разбора данных из всех этих файлов. xml.
import xml.etree.ElementTree as ET
import os
import xlsxwriter
data_path = '/Users/jaehyunlee/Desktop/for_test'
# Read full directory and file name in the folder
for path, dirs, files in os.walk(data_path):
for file in files:
if os.path.splitext(file)[1].lower() == '.xml': # filtering only for .xml files
full_path = os.path.join(path, file)
# Parsing data from .xml file
tree = ET.parse(full_path)
root = tree.getroot()
for space in root.iter('space'):
car = space.attrib["occupied"]
car_int = int(car)
Проблема возникает, когда я пытаюсь проанализировать значение атрибута «busy». Когда я запускаю код, он возвращает KeyError: 'busy'. Для других атрибутов, таких как 'x', 'y', 'w', 'h', он работает отлично. Может ли кто-нибудь помочь?
ps. Когда я конвертирую один файл. xml по отдельности, эта ошибка не возникает. Но это происходит, когда я пытаюсь выполнить итерацию для всех файлов в папке.