打印lxml.objectify.ObjectifiedElement?

时间:2016-05-10 03:02:17

标签: python lxml

打印lxml.objectify.ObjectifiedElement只打印一个空行,所以我必须通过它的标签访问它,当我不知道响应的标签时,我只是猜测。

如何打印整个对象,显示子名称和值?

根据要求,这是我的代码。不知道这个目的是什么,但是:

from amazonproduct import API
api = API('xxxxx', 'xxxxx', 'us', 'xxxx')

result = api.item_lookup('B00H8U93JO', ResponseGroup='OfferSummary')
print result

2 个答案:

答案 0 :(得分:3)

使用lxml.etree.tostring()似乎有效,虽然没有美化:

>>> from lxml import etree
>>> from lxml import objectify
>>> raw = '''<root>
... <foo>foo</foo>
... <bar>bar</bar>
... </root>'''
... 
>>> root = objectify.fromstring(raw)
>>> print type(root)
<type 'lxml.objectify.ObjectifiedElement'>
>>> print etree.tostring(root)
<root><foo>foo</foo><bar>bar</bar></root>

答案 1 :(得分:0)

作为对har07的回应,您可以使用简约来美化

from lxml import objectify, etree
from xml.dom import minidom

def pretty_print( elem ):
    xml = etree.tostring( elem )
    pretty = minidom.parseString( xml ).toprettyxml( indent='  ' )
    print( pretty )