от
У меня есть простые данные XML, как показано ниже,

  import xml.etree.ElementTree as et
import csv

tree = et.parse('./1_2018

Однако, поскольку не все строки XML имеют значения «stepCount», «groupAreaId», «commit», код не будет работать, пока я не удалю эти переменные.

Как бы я мог получить все переменные, показанные в файле CSV, в том числе строки с пустым значением переменных?
    

        

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.

2 Ответы

0 голосов
от
Если вы используете метод .get () для чтения атрибута узла, можно добавить значение по умолчанию, например, пустую строку. Так что в вашем случае это будет так:
for node in nodes:
        values = [ node.attrib.get(kk, '') for kk in cols]
        nodewriter.writerow(values)
    
0 голосов
от
Вы можете использовать оператор if-else в понимании списка, чтобы проверить, существует ли атрибут.
import xml.etree.ElementTree as et
import csv

tree = et.parse('./1_2018
    
...