我想在Python中将信息从xml写入dict。 下面是xml文件:
<data>
<files>
<links>
<item>
<file_name>file1</file_name>
<id>100</id>
</item>
<item>
<file_name>file2</file_name>
<id>200</id>
</item>
<item>
<file_name>file3</file_name>
<id>300</id>
</item>
</links>
</files>
</data>
对于Python dict,如:
xml_content = { 'file1' = 100, 'file2' = 200, 'file3' = 300 }
感谢您的帮助
答案 0 :(得分:1)
使用xmltodict
这个简单的代码可用于提取词典:
使用xmltodict
pip install xmltodict
import xmltodict
doc = xmltodict.parse("""
<data>
<files>
<links>
<item>
<file_name>file1</file_name>
<id>100</id>
</item>
<item>
<file_name>file2</file_name>
<id>200</id>
</item>
<item>
<file_name>file3</file_name>
<id>300</id>
</item>
</links>
</files>
</data>
""")
d = {}
for item in doc["data"]["files"]["links"]["item"]:
d[item["file_name"]] = int(item["id"])
print(d)
d
将是:
{u'file3': 300, u'file2': 200, u'file1': 100}
或者,您可以从以下文件加载xml:
with open('path/to/file.xml') as fd:
doc = xmltodict.parse(fd.read())
答案 1 :(得分:0)
美丽的汤应该帮助你
链接 - https://www.crummy.com/software/BeautifulSoup/
这样的事情应该有效
from bs4 import BeautifulSoup
soup = BeautifulSoup("""
<data>
<files>
<links>
<item>
<file_name>file1</file_name>
<id>100</id>
</item>
<item>
<file_name>file2</file_name>
<id>200</id>
</item>
<item>
<file_name>file3</file_name>
<id>300</id>
</item>
</links>
</files>
</data>
""")
xml_content = { item.find('file_name').string: item.find('id').string for item in soup.find_all('item') }
输出:
{'file2': '200', 'file3': '300', 'file1': '100'}