Python 将xml打印到控制台(xml.etree.ElementTree)

Python 将xml打印到控制台(xml.etree.ElementTree),python,xml,python-2.7,Python,Xml,Python 2.7,我需要将xml打印到从响应接收到的控制台: import xml.etree.ElementTree as ET xml = req.text result = ET.ElementTree(ET.fromstring(xml)) rough_string = ET.tostring(result, "utf-8") reparsed = minidom.parseString(rough_string) print reparsed.toprettyxml(indent="

我需要将xml打印到从响应接收到的控制台:

import xml.etree.ElementTree as ET        

xml = req.text
result = ET.ElementTree(ET.fromstring(xml))

rough_string = ET.tostring(result, "utf-8")
reparsed = minidom.parseString(rough_string)
print reparsed.toprettyxml(indent="\t")
错误:

AttributeError: 'ElementTree' object has no attribute 'tag'
  File "....", line x, in ...
    rough_string = ET.tostring(result, "utf-8")
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1126, in tostring
    ElementTree(element).write(file, encoding, method=method)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 820, in write
    serialize(write, self._root, encoding, qnames, namespaces)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 900, in _serialize_xml
    tag = elem.tag
AttributeError: 'ElementTree' object has no attribute 'tag'

您正在将已创建的ElementTree对象传递回ElementTree:

result = ET.ElementTree(ET.fromstring(xml))
不要那样做;删除
ET.ElementTree()
调用:

result = ET.fromstring(xml)
现在,您的
ET.tostring()
调用将起作用


接下来,我看到您正在使用
req.text
作为XML的源代码;如果这是一个
请求
响应对象,那么传递的值是错误的,您应该使用
请求内容
。应该向XML解析器传递字节字符串,而不是
unicode
值。然后解析器将根据XML声明进行解码。它可能适用于只包含ASCII文本的文档,但任何包含ASCII字符集以外文本的文档都将失败。

错误的完整回溯是什么?此外,不要将Unicode文本提供给XML解析器;总是通过测试环给它们喂食。解析器的工作是根据XML声明对数据进行解码。