def toSimpleXml(data, wrap = False): result = list() input_data_type = type(data) if input_data_type is list: for sub_element in data: result.append(toSimpleXml(sub_element)) return ''.join(result) elif input_data_type is dict: for tag_name in data: sub_element = data[tag_name] result.append('<%s>' % tag_name) result.append(toSimpleXml(sub_element)) result.append('</%s>' % tag_name) return ''.join(result) if wrap: return '<%s>%s</%s>' % (wrap, data, wrap) return data data = [{'element_1': 'value_1'}, {'element_2': {'element_2_1': 'value_2_1'}}] print toSimpleXml(data, 'root')
По идее оно всё должно врапнуть ещё и роот тэгом, но не врапает…