解析元素到词典

时间:2014-07-02 08:26:39

标签: python xml dictionary

我是python编程的新手,我正在努力将xml文件中的ind_elements转换为dict。

我能够解析文件并获得输出。通过代码输出的文件如下:

代码如下:

for ind_list in reflist:
    for i in ind_list.attributes.keys():
        print(ind_list.attributes[i].name)
        print(ind_list.attributes[i].value)  




name
sankar
title
student
age
25
user_2
2012-05-08
user_3
2012-05-08

name
sankar
title
student
age
25
user_1
2012-05-08
user_2
2012-05-08

name
sankar
title
student
age
25
user_4
2012-05-08
user_5
2012-05-08

现在的问题如下: 1)我想将这些元素插入字典中。我想动态插入它。 2)从输出中可以看出,xml文件的每一行都是不同的。如何将密钥动态添加到dict中,而不是在它已经存在时添加它?

我希望将这些单独的值插入到数据库中。我曾经使用过dict的数据库编码。所以我可以编写那部分代码。

2 个答案:

答案 0 :(得分:1)

然后,您应该使用xmltodict来自xmltodict文档;

>>> doc = xmltodict.parse("""
... <mydocument has="an attribute">
...   <and>
...     <many>elements</many>
...     <many>more elements</many>
...   </and>
...   <plus a="complex">
...     element as well
...   </plus>
... </mydocument>
... """)
>>>
>>> doc['mydocument']['@has']
u'an attribute'
>>> doc['mydocument']['and']['many']
[u'elements', u'more elements']
>>> doc['mydocument']['plus']['@a']
u'complex'
>>> doc['mydocument']['plus']['#text']
u'element as well'

答案 1 :(得分:0)

不要浪费时间创建dicts。只需迭代xml并创建数据库查询。

对于某些操作,这种处理方式更自然,例如将XML输入转换为其他格式。此技术可用于将早期示例中的播客列表从XML文件转换为CSV文件,因此可以将它们加载到电子表格或数据库应用程序中。

看看这种方法并告诉我们为什么这对你不起作用。