Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何用XML元素和值填充字典?_Python_Xml_Dictionary_Comparison - Fatal编程技术网

Python 如何用XML元素和值填充字典?

Python 如何用XML元素和值填充字典?,python,xml,dictionary,comparison,Python,Xml,Dictionary,Comparison,我想用2个XML文件填充2个字典,将标记存储为键,将node.text存储为Python中的值 我不知道如何在节点的帮助下通过循环填充字典,因为我对Python相当陌生(1周),而且我还没有太多编程经验。在过去的两个小时里,我一直在用谷歌搜索它,但是找不到任何我可以使用的东西。 我的想法是循环遍历节点,检查标记是否已经是字典中的键,如果不是,则创建键。之后,我会将每个标记中的值添加到相应的键中 到目前为止我的代码 #编码=utf-8 导入操作系统 将xml.etree.ElementTree作为

我想用2个XML文件填充2个字典,将标记存储为键,将node.text存储为Python中的值

我不知道如何在节点的帮助下通过循环填充字典,因为我对Python相当陌生(1周),而且我还没有太多编程经验。在过去的两个小时里,我一直在用谷歌搜索它,但是找不到任何我可以使用的东西。 我的想法是循环遍历节点,检查标记是否已经是字典中的键,如果不是,则创建键。之后,我会将每个标记中的值添加到相应的键中

到目前为止我的代码

#编码=utf-8
导入操作系统
将xml.etree.ElementTree作为et导入
#Folgenex Block schreibt die Daten在ein Objekt
base_path=os.path.dirname(os.path.realpath(_文件__))
xml\u file1=os.path.join(基本路径,“data\\file1.xml”)
xml\u file2=os.path.join(基本路径,“data\\file2.xml”)
#在阿尔特·厄尔甘兹特·沃德的德森·达蒂
tree1=et.parse(xml_文件1)
root1=tree1.getroot()
#Datei,dessen在麻省理工学院文件1 verglichen wird中
tree2=et.parse(xml_文件2)
root2=tree2.getroot()
#字典für die jeweiligen XML文件
dict1={}
dict2={}
对于tree1.findall('.//LISTDATA')中的节点:
对于node.getchildren()中的snode1:
#我不知道这个的密码
对于tree2.findall(“.//数据”)中的节点:
对于node.getchildren()中的snode2:
#我不知道这个的密码
XML是相当基本的

<ROOT>
<LISTDATA>
<DATA1>0001</DATA1>
<DATA2>0002</DATA2>
</LISTDATA>
</ROOT>

0001
0002
非常感谢您的建议。

如下:

import xml.etree.ElementTree as ET

xml = '''<ROOT>
<LISTDATA>
<DATA1>0001</DATA1>
<DATA2>0002</DATA2>
</LISTDATA>
</ROOT>'''

root = ET.fromstring(xml)
data = {entry.tag: entry.text for entry in list(root.find('.//LISTDATA'))}
print(data)

这个问题是关于在dict中赋值的,而不是关于XML解析的。请阅读
{'DATA1': '0001', 'DATA2': '0002'}