Я использую модуль xml .etree.ElementTree с Python 3.6 для создания файла XML с десятками подэлементов. То, к чему я стремлюсь, должно выглядеть так:
<shots>
<shot id="0">
<Audio_Channels>2</Audio_Channels>
<Audio_File>testhq12.mov</Audio_File>
<Audio_Fps>Unspecified</Audio_Fps>
...
<Type>C</Type>
<Width>4096</Width>
<shot/>
<shot id="1">
....
</shots>
И до сих пор я использовал следующий код для создания этой структуры, но она становится очень уродливой, когда есть много «подполей» добавить
_audio_channels = Element('Audio_Channels')
shot.append(_audio_channels)
_audio_channels.text = str(audio_channels_data)
_audio_file = Element('Audio_File')
shot.append(_audio_file)
_audio_file.text = str(audio_file_data)
.
.
.
И поэтому я попытался упростить это с помощью al oop, который выглядит примерно так:
fields = ['Audio_Channels', 'Audio_File', 'Audio_Fps', ...]
for k in fields:
prop = Element(k)
shot.append(prop)
Но я понятия не имею, как передать какой-либо текст их позже, используя только элементы из списка полей в качестве ключей? Пробовал это, но это не работает
shot.insert(str(audio_file_data), 'Audio_File')