`
linkyou66
  • 浏览: 228402 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

python 下xml和dict相互转化,含attributes

 
阅读更多
<p>from lxml import etree</p>
<p>def dictlist(node):<br>res = {}<br>res[node.tag] = []<br>xmltodict(node,res[node.tag])<br>reply = {}<br>reply[node.tag] = {'value':res[node.tag],'attributes':node.attrib}<br><br>return reply</p>
<p>def xmltodict(node,res):<br>rep = {}<br><br>if len(node):<br>#n = 0<br>for n in list(node):<br>rep[node.tag] = []<br>value = xmltodict(n,rep[node.tag])<br>if len(n):<br><br>value = {'value':rep[node.tag],'attributes':n.attrib}<br>#print value<br>res.append({n.tag:value})<br>else :<br>#print rep[node.tag][0]<br>res.append(rep[node.tag][0])<br><br>else:<br>value = {}<br>value = {'value':node.text,'attributes':node.attrib}<br>#print value<br>res.append({node.tag:value})<br><br>return <br>def fromstring(strdict=None):<br>root = etree.fromstring(strdict)<br>return dictlist(root)</p>
<p>def parse(filename=None):<br>tree = etree.parse(filename)<br>return dictlist(tree.getroot())<br></p>
<p>def main():<br>tree = etree.parse('test.xml')<br>print tree<br>res = dictlist(tree.getroot())<br>print res<br><br>def dict2xml(d):<br>from xml.sax.saxutils import escape<br>def unicodify(o):<br>if o is None:<br>return u'';<br>return unicode(o)<br>lines = ["&lt;?xml version=/"1.0/" encoding=/"utf-8/"?&gt;"]<br>def addDict(node, offset):<br>for name, value in node.iteritems():<br>if name == "attributes":<br>strqq = lines[len(lines)-1]<br>index = strqq.find(u"&lt;")<br>strqq = strqq[index+1:len(strqq)-1]<br>for x,y in value.iteritems():<br>strqq = strqq + u" " *4 + u"%s='%s'"%(x,y)<br>lines[len(lines)-1] = u" " * index + u"&lt;%s&gt;"%(strqq)<br>else:<br>if isinstance(value, dict):<br>lines.append(offset + u"&lt;%s&gt;" % name)<br>addDict(value, offset + u" " * 4)<br>lines.append(offset + u"&lt;/%s&gt;" % name)<br>elif isinstance(value, list):<br>for item in value:<br>if isinstance(item, dict):<br>addDict(item, offset + u" " * 4)<br>else:<br>lines.append(offset + u"&lt;%s&gt;%s&lt;/%s&gt;" % (name, escape(unicodify(item)), name))<br>else:<br>if value != "":<br>pass<br>addDict(d, u"")<br>lines.append(u"")<br>return u"/n".join(lines)<br><br>#if __name__ == '__main__' :<br>#main()</p>
<p>test 就不帮大家写了</p>
分享到:
评论

相关推荐

    Python中xml和dict格式转换的示例代码

    最近在做APP的接口,遇到XML格式的请求数据,费了很大劲来解决,解决方式是:接口文档拿到的是XML,在线转化为json格式(目的是拿到xml数据的模板),存放到json文件中,根据接口名去提取。 github原文介绍:使用...

    Python实现Json与Dict的互相转换

    使用python实现dict和json字符串的互相转换,以及相应的文件读入和存取操作。相当于实现了简单的jsonlib。对于Python的学习有一定的帮助。 主要的类是JsonParser,对外的接口在JsonParser里有定义,对外的接口均有...

    xml2dict.rar

    xml格式转化为字典(dict)的python程序,含: 1 .xml测试文件; 2 xml文件到字典格式的python源代码。

    Python 的字典(Dict)是如何存储的

    主要介绍了Python 的字典(Dict)是如何存储的,文中介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Python XML转Json之XML2Dict的使用方法

    今天小编就为大家分享一篇Python XML转Json之XML2Dict的使用方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    python实现dict of dict的替换key

    python实现字典包裹字典的替换key。python代码,如果有需要,请自行下载。

    python实现字典(dict)和字符串(string)的相互转换方法

    本文实例讲述了python实现string和dict的相互转换方法。分享给大家供大家参考,具体如下: 字典(dict)转为字符串(string) 我们可以比较容易的将字典(dict)类型转为字符串(string)类型。 通过遍历dict中的所有元素就...

    Python库 | dotted_dict-1.0.8.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:dotted_dict-1.0.8.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python库 | dict_to_protobuf-0.0.3.10-py3-none-any.whl

    资源分类:Python库 所属语言:Python 资源全名:dict_to_protobuf-0.0.3.10-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python之dict(或对象)与json之间的互相转化实例

    在Python语言中,json数据与dict字典以及对象之间的转化,是必不可少的操作。 在Python中自带json库。通过import json导入。 在json模块有2个方法, loads():将json数据转化成dict数据 dumps():将dict数据转化成...

    对Python3中dict.keys()转换成list类型的方法详解

    在python3中使用dict.keys()返回的不在是list类型了,也不支持索引,我们可以看一下下面这张图片 那么我们应该怎么办呢,其实解决的方法也是非常简单的,只需要使用list()就可以了,可以看下面的代码 list(dict....

    Python sorted对list和dict排序

    主要介绍了Python sorted对list和dict排序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    python中dict的用法.docx

    在Python中,dict是一种可变的数据类型,可以动态地添加、删除和修改键值对。 创建dict 创建一个dict非常简单,只需要使用花括号{},并在其中添加键值对即可。例如: ``` my_dict = {'name': 'Tom', 'age': 18, '...

    lru_dict的python库

    是python的一个库,鉴于比较难下载就放在这里给大家下载了。

    python-dict-方法.docx

    python dict 方法 Python是一种高级编程语言,它提供了许多内置的数据结构和方法,其中最常用的是字典(dict)。字典是一种无序的键值对集合,可以用于存储和访问数据。在本文中,我们将介绍Python字典的一些常用...

    获得Dict的key和value

    公共函数,通过get_keys_from_value(d,val),传入value get key

    Python之使用dict和set共8页.pdf.zip

    Python之使用dict和set共8页.pdf.zip

Global site tag (gtag.js) - Google Analytics