xmltodict:不提取正确的嵌套元素

时间:2016-04-08 04:48:28

标签: python python-2.7 xmltodict

所以我有这样的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>的孩子

我做错了什么?

1 个答案:

答案 0 :(得分:2)

这是xmltodict的常见问题,在此处讨论过:

此行为的解决方法是使用force_list选项(目前在主分支中可用):

xmltodict.parse(data, force_list={'books': 'book'})