def write(self, data): if self.options.set is None and self.options.param is None: raise IOError("Unspecified model component") root = ET.Element('table') table = self.get_table() labels = table[0] for i in range(len(labels)): labels[i] = str(labels[i]) for trow in table[1:]: row = ET.SubElement(root, 'row') for i in range(len(labels)): data = ET.SubElement(row, labels[i]) data.set('value', str(trow[i])) # tree = ET.ElementTree(root) tree.write(self.filename)
def element_for_value(obj, parent): for key, value in obj.items(): if isinstance(value, dict): node = etree.SubElement(parent, key) element_for_value(value, node) elif isinstance(value, list): if not value: node = etree.SubElement(parent, key) for item in value: node = etree.SubElement(parent, key) element_for_value(item, node) else: if key.startswith('@'): parent.set(key.lstrip('@'), value) else: node = etree.SubElement(parent, key) node.text = '{0}'.format(value) if value is not None else ''