首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:使用xmltodict获取值

Python:使用xmltodict获取值
EN

Stack Overflow用户
提问于 2016-03-27 22:23:10
回答 1查看 4.8K关注 0票数 1

我有一个XML文件,如下所示:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<session id="2934" name="Valves" docVersion="5.0.1">
    <docInfo>
        <field name="Employee" isMandotory="True">Jake Roberts</field>
        <field name="Section" isOpen="True" isMandotory="False">5</field>
        <field name="Location" isOpen="True" isMandotory="False">Munchen</field>
    </docInfo>
</session>

使用xmltodict,我想让员工处于一个字符串中。这可能很简单,但我似乎搞不懂。

这是我的密码:

代码语言:javascript
复制
#!/usr/bin/python
# -*- coding: utf-8 -*-


import sys
import xmltodict


with open('valves.xml') as fd:
    doc = xmltodict.parse(fd.read())


print "ID          : %s" % doc['session']['@id']
print "Name        : %s" % doc['session']['@name']
print "Doc Version : %s" % doc['session']['@docVersion']


print "Employee    : %s" % doc['session']['docInfo']['field']


sys.exit(0)

使用这种方法,我确实可以获得列表中的所有字段,但可能使用xmltodict,每个单独的字段属性或元素都可以作为键值访问。例如,我如何访问"Jake“值,就像访问docVersion的值一样?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-27 22:36:48

您得到的是一个字段列表,其中每个字段都由一个dict()表示。探索这个dict (例如在中),以缩小如何获得所需的值。

代码语言:javascript
复制
>>> doc["session"]["docInfo"]["field"][0]
OrderedDict([(u'@name', u'Employee'), (u'@isMandotory', u'True'), ('#text', u'Jake Roberts')])

为了获得元素值,将["#text"]添加到上面代码段中行的末尾。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36253405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档