所以我有这样的XML:
<main>
<site>Amazon</site>
<url>..</url>
<books>
<book>
<id>1</id>
<author>Jhon</author>
</book>
<book>
<id>2</id>
<author>Jhon</author>
</book>
<book>
<id>3</id>
<author>Jhon</author>
</book>
</books>
</main>
我正在访问它:
document = xmltodict.parse(xml)
books = document['books]['book'] #returns 3
for book in books:
pass
但如果XML就像:
<books>
<book>
<id>3</id>
<author>Jhon</author>
</book>
</books>
然后代替 1 ,它返回 2 ,它是<books>
的孩子
我做错了什么?
答案 0 :(得分:2)
这是xmltodict
的常见问题,在此处讨论过:
此行为的解决方法是使用force_list
选项(目前在主分支中可用):
xmltodict.parse(data, force_list={'books': 'book'})