Я использую Python для создания некоторых файлов XML, которые используются другим устройством. У меня есть решение, которое работает, но я пытаюсь его улучшить. Одна из вещей, которые должен содержать XML, - это расписание. Вот что должно выглядеть запись в понедельник в XML.
У меня нет проблем с созданием этого с ElementTree в Python, но сейчас я застрял, имея строку кода для каждого дня. Итак, фрагмент моего кода на Python выглядит так:
SubElement(schedule, 'Monday', open='08:00', close='17:00')
SubElement(schedule, 'Tuesday', open='08:00', close='17:00')
.
.
.
SubElement(schedule, 'Sunday', open='08:00', close='17:00')
Файл xml завершит работу с несколькими расписаниями, и, набрав все это, кажется излишне повторяющимся. Вместо этого я хотел создать функцию, которая выполняет итерацию над списком, чтобы создать параметры для перехода к SubElement. В рамках этой функции я создал эту строку, чтобы заменить время в вызове SubElement.
"open=" + "\'08:00\'" + ", " + "close=" + "\'17:00\'"
Если я распечатаю это, он выглядит идентично тому, что я передаю SubElement, когда я печатаю код длинным путем. Однако это явно не то же самое, что я получаю следующую ошибку при попытке запустить скрипт.
File "C:\Python27\lib\xml\etree\ElementTree.py", line 528, in SubElement
attrib = attrib.copy()
AttributeError: 'str' object has no attribute 'copy'
Я просмотрел код SubElement и, похоже, ожидает словарь. Тем не менее, когда я печатаю вещи длинным путем, я, кажется, не поставляю словарь в качестве входных данных, либо поэтому не могу понять, почему функция должна принимать этот ввод, но не строку, которая для меня представляется эквивалентной , Есть ли способ делать то, что я пытаюсь сделать, или я придерживаюсь много повторяющихся строк кода?