将json文件转为xml,没有换行符问题解决
将json转为xml的方法,网上大概有两种方案,dom和elementtree
我习惯于使用后者了,可是这种方法书写出的xml没有换行符号,实在不忍直视。
于是找到了以下代码片段,来解决这一问题,非常简单:
def indent( elem, level=0):
i = "\n" + level*" "
if len(elem):
if not elem.text or not elem.text.strip():
elem.text = i + " "
for e in elem:
indent(e, level+1)
if not e.tail or not e.tail.strip():
e.tail = i
if level and (not elem.tail or not elem.tail.strip()):
elem.tail = i
return elem
代入根结点root调用一下在写入文件即可。
root = Element('annotation')
treeroot = ElementTree(root)
...
...
indent(root)
treeroot.write(xmlname,encoding="utf-8",xml_declaration=True)