Python:获取XML数据并放入多值字典

Python:获取XML数据并放入多值字典,python,xml,elementtree,Python,Xml,Elementtree,我有一些XML格式的数据需要存储在字典中。 XML文件如下所示: <market> <grocery> <items> <item> <name>Apple</name> <seller>AppleSeller</seller> <quantity>30</quantity&g

我有一些XML格式的数据需要存储在字典中。 XML文件如下所示:

<market>
   <grocery>
      <items>
         <item>
            <name>Apple</name>
            <seller>AppleSeller</seller>
            <quantity>30</quantity>
            <price>10</price>
         </item>
         <item>
            <name>Orange</name>
            <seller>OrangeGuy</seller>
            <quantity>25</quantity>
            <price>20</price>
         </item>
         <item>
            <name>Banana</name>
            <seller>BananaMan</seller>
            <quantity>35</quantity>
            <price>5</price>
         </item>
         <item>
            <name>Apple</name>
            <seller>AppleSeller</seller>
            <quantity>67</quantity>
            <price>20</price>
         </item>
      </items>
   </grocery>

   <cleaning>
      <items>
         <item>
            <name>Disinfectant</name>
            <seller>MrClean</seller>
            <quantity>24</quantity>
            <price>50</price>
         </item>
         <item>
            <name>Mop</name>
            <seller>MopIndustries</seller>
            <quantity>5</quantity>
            <price>30</price>
         </item>
      </items>
   </cleaning>

</market>

不能为字典中的所有元素创建相同的键。 选中下面的代码,它将创建所有杂货的列表

您可以对其他元素执行相同的操作

import xml.etree.ElementTree as ET
root = ET.fromstring(xmlstring)
names = [i.text for i in root.findall('grocery/items/item/name')]
seller = [i.text for i in root.findall('grocery/items/item/seller')]
quantity = [i.text for i in root.findall('grocery/items/item/quantity')]
price = [i.text for i in root.findall('grocery/items/item/price')]
ls = [list(i) for i in zip(names,seller,quantity,price)]
print(ls)
d = {"grocery": ls}
print(d)

欢迎来到stackoverflow!请拿起,仔细阅读并提供。不要期望这里的人从头开始为您编写代码。
import xml.etree.ElementTree as ET
root = ET.fromstring(xmlstring)
names = [i.text for i in root.findall('grocery/items/item/name')]
seller = [i.text for i in root.findall('grocery/items/item/seller')]
quantity = [i.text for i in root.findall('grocery/items/item/quantity')]
price = [i.text for i in root.findall('grocery/items/item/price')]
ls = [list(i) for i in zip(names,seller,quantity,price)]
print(ls)
d = {"grocery": ls}
print(d)