我是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的数据库编码。所以我可以编写那部分代码。
答案 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文件,因此可以将它们加载到电子表格或数据库应用程序中。
看看这种方法并告诉我们为什么这对你不起作用。