![](/img/trans.png)
[英]Not getting all the attributes from element tags in XML using python
[英]Getting values of XML attributes In Python
我是 Python 新手,我需要从 XML 文件中获取一些属性值,然后将这些值转换为 JSON。
例子:
<messages>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Dont forget me this weekend!</body>
</messages>
{
"from":"Jani",
"body":"Dont forget me this weekend!"
}
我怎样才能最好地实现这一目标? 我会先将其转换为 JSON 吗? 如果是,我会使用哪个库? Lxml? 或者我将它转换为 String 然后使用正则表达式来获取一些值?
您可以使用ElementTree API来解析您的 XML 文本并从中获取所需的值。
然后您可以使用JSON API创建所需的 JSON 输出。
我注意到你的 json 格式就像一个 python 字典。
from xml.dom import minidom
data = {}
with open('email.xml', 'r', encoding='utf8') as fh:
dom = minidom.parse(fh)
# Get root element
root = dom.documentElement
for tag in root.childNodes:
if tag.nodeType != tag.TEXT_NODE:
key = tag.nodeName
value = tag.childNodes[0].data
data[key] = value
print(data)
输出是:{'to': 'Tove', 'from': 'Jani', 'heading': 'Reminder', 'body': '这个周末不要忘记我!'}
如果你想更深入地理解xml,你需要了解一些组件,如根、元素、节点、标签、属性等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.