【发布时间】:2020-02-04 10:41:39
【问题描述】:
我在 Python 3.6 中使用 xml.etree.ElementTree 模块来创建一个包含数十个子元素的 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)
.
.
.
所以我尝试用一个看起来像这样的循环来简化它:
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')
【问题讨论】:
-
你能提供
audio_channels_data、audio_file_data和(我假设)audio_fps_data看起来像什么的简短例子吗? -
按以下顺序:2、“testhq12.mov”、“未指定”。所以一个 int, string, string
-
基本上我不知道在“for k in fields”循环完成后使用什么方法来分配上面的值