在网上的例子上画了一个小函数,但是递归有问题。。。你知道吗
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'}}, {'element_1': 'value_1'}]
print toSimpleXml(data, 'root')
根据想法,结果应该用root
包装,但是wrap
变量是false。。。你知道吗
函数返回太早,
wrap
无法发挥作用。设置data
而不是返回:现在实际到达了
if wrap
语句:相关问题 更多 >
编程相关推荐