python常用的标准库有哪些,python有哪些标准库
个人资料
元素类型是一个灵活的容器对象,用于在内存中存储结构化数据。
[注意]xml.etree.ElementTree模块不安全,无法处理恶意的结构化数据。
每个元素对象都具有以下属性:
1.标签:字符串对象。指示数据表示的种类。
2.attrib:字典对象。表示附加的属性。
3.文本:字符串对象。表示元素的内容。
4.tail:字符串对象。指示元素关闭后的轨道。
5.一些子元素。
texttail
1 2 3 4
创建元素的方法是元素或子元素()。前者称为元素的构造函数,用于构建任何独立的元素。后者称为元素制造功能,用于制造某个元素的子元素。
生成一系列元素后,使用ElementTree类将它们打包,转换成xml文件或从xml文件中分析它们。
为了加快速度,请使用C语言编译的API xml.etree.cElementTree。
导入元素树
如果使用xml.etree.ElementTree,它通常按如下方式导入:
尝试:
导入XML.etree.celementtreeaset
异常错误:
导入XML.etree.element树集
XML是一种结构化数据格式。ET使用ElementTree来表示整个XML文档,并将其视为一棵树。元素表示文档树中的每个节点。
ET提供了从各种来源导入数据的方法,如下所示:
#从硬盘xml文件中读取数据
导入XML.etree.element树集
tree=et . parse(country _ data . XML)#加载数据
Get root=tree.getroot根节点
从# string读取数据
root=et . from string(country _ data _ as _ string)).
【注意】上面的root其实是一个元素,因为】fromstring()直接获取string对象中的根节点。
作为一个元素对象,它有自己的子元素,所以它可以直接在元素中重复值。
对于根中的儿童:printchild.tag。
国家{ 名称 : 列支敦士登 }
国家{ 名称 : 新加坡 }
国家{ 名称:巴拿马 }
或者,直接使用索引查找子节点。
根[0] [1]。文本
2008
在元素中遍历和查询
元素。ITER(tag=none):遍历该元素的所有后代,或者为遍历搜索指定标签。
Element.findall(path):查找与当前元素下的标签或路径匹配的直接节点。
Element.find(path):在当前元素下查找匹配标签或路径的第一个直接节点。
获取当前元素的文本值。
Element.get(key,default=None):获取元素指定的键对应的属性值,如果没有属性则返回默认值。
元素对象
class XML . etree . element tree . element(tag,attrib={},**extra)).
Tag:string,元素表示的数据类型。
Text:字符串,元素的内容。
Tail:string,元素的尾部。
Attrib:字典,元素属性字典。
#对属性的操作
Clear():空元素、属性、文本和尾部的后代也被设置为None。
Get(key,default=None):获取key对应的属性值,如果不存在则返回默认值。
Items():根据属性字典返回包含列表元素(key,value)的列表。
Kys():返回包含所有元素的属性键列表。
Set(key,value):设置新的属性键和值。
#对后代的操作
Append(子元素):添加直接子元素。
Extend(子元素):添加一系列元素对象作为子元素。#python2.7的新特性
Find(match):查找第一个匹配的子元素。匹配对象是标签或
路径.
Findall(match):查找所有匹配的子元素,匹配的对象可以是tag或path。
Findtext(match):查找第一个匹配的子元素并返回其文本值。匹配对象可以是标签或路径。
Insert(index,element):在指定位置插入子元素。
Iter(tag=None):生成遍历当前元素或给定标记的所有后代的迭代器。#python2.7中的新特性
Iterfind(match):根据标签或路径查找所有后代。
Itertext():遍历所有后代并返回文本值。
删除(子元素):删除子元素。
树对象
class XML . etree . element tree . element tree(element=None,file=None)
如果给定了元素,则它是新元素树的根节点。
_setroot(element):用给定的元素替换当前根节点。慎用。
#以下方法类似于Element类中同名的方法,只是它们将根节点指定为操作对象。
查找(匹配)
查找全部(匹配)
findtext(匹配,默认值=无)
Getroot():获取根节点。
iter(标签=无)
匹配项
Parse(source,parser=None):加载xml对象,source可以是文件名或文件类型对象。
write(file,encoding=us-ascii ,xml_declaration=None,default_namespace=None,method=xml )
模块方法
XML . etree . element tree . comment(text=none)创建一个特殊元素,该元素通过标准序列化表示注释。注释可以是字节字符串或unicode。Xml.etree.element tree.dump (ELM)生成element tree,通过sys.stdout输出ELM可以是元素树,也可以是单个元素。此方法最好仅用于调试。Xml . etree . element tree . from string(Text)Text是包含XML数据的字符串,类似于XML()方法,返回一个元素实例。Xml . etree . element tree . from string list(sequence,parser=none)从字符串的序列对象中解析XML文档。默认的解析器是XMLParser,它返回一个元素实例。
new version 2.7 . XML . etree . element tree . is element(element)检查是否为element对象。Xml . etree . element tree . ITER parse(source,events=none,parser=none)将包含XML数据的文件或文件对象增量解析到element tree中,并报告进度。事件是一个报告列表。如果忽略,将只报告结束事件。
注意iterparse()只有看到开始标签的符号才会抛出开始事件,所以当时已经定义了属性,但是当时还没有定义text和tail属性,同样的子元素也没有定义,所以可能不会显示。如果你想要完整的元素,请寻找结束事件。将文件或字符串解析到element tree中。Xml . etree . element tree . processing instruction(target,text=none)该方法创建一个特殊的元素,该元素被序列化为XML处理命令。XML . etree . element tree . register _ namespace(prefix,uri)注册名称空间前缀。此注册是全局有效的,任何给定的前缀或命名空间uri映射关系都将被删除。
在2.7 . XML . etree . element tree . sub element(parent,tag,attrib={},* * extra)子元素工厂中,创建一个元素实例并将其追加到已知节点。Xml . etree . element tree . tostring(element,encoding= US-ASCII ,method= xml )生成一个字符串来表示代表XML的元素,包括所有子元素。是元素实例,方法是“xml”、“html”、“text”。返回包含xml数据的字符串。Xml . etree . element tree . tostringlist(element,encoding= US-ASCII ,method= xml )生成一个字符串来表示代表XML的元素,包括所有子元素。是元素实例,方法是“xml”、“html”、“text”。返回包含xml数据的字符串列表。
new version 2.7 . xml . etree . element tree . XML(text,parser=none)从字符串常量解析XML片段。返回一个元素实例。Xml . etree . element tree . xmlid(text,parser=none)从字符串常量中解析XML片段,并返回一个字典以将元素的id映射到其自身。
例子
可扩展标记语言
?xml版本=1.0 编码=utf-8 ?
引导代码接口测试
dgm.boweixin.com
80
[]
账户
一个
2
userId34
用户标识
01001
下船
邮政
/登录
{appstatus: {errorcode: 0, message :操作成功 },
content:[{user_sex:0, fk_user_city:440300,
user_id:30,昵称: 18576759587 ,
用户电话: 18576759587 ,
head _ picture : http:\/\/dgm . bowei Xin . com \/,
has_finance:1,
“用户状态”:1
}]
}
用户标识
0
账户
五
六
使用者辩证码
七
八
用户标识
10012
1次着陆
后1
/Login1
{appstatus: {errorcode: 0, message :操作成功 },
content:[{user_sex:0, fk_user_city:440300,
user_id:30,昵称: 18576759587 ,
用户电话: 18576759587 ,
head _ picture : http:\/\/dgm . bowei Xin . com \/,
has_finance:1,
“用户状态”:1
}]
}
0
0
代码分析
从xml.etree将元素树作为ET导入
def getXML(xml):
tree=ET.parse(xml)
root=tree.getroot()
i_base={}
interfaceName=[]
I _ base[ title ]=root。查找(标题).文本
i_base[host]=root.find(host ).文本
i_base[port]=root.find(port ).文本
i_base[No]=root.find(No ).文本
interfaceName.append(i_base)
对于root.findall(InterfaceList )中的elem:
i_app={}
i_app[id]=elem.find(id ).文本
i_app[name]=elem.find(name ).文本
i_app[方法]=elem.find(方法)。文本
i_app[url]=elem.find(url ).文本
i_app[hope]=elem.find(hope ).文本
I _ app[登录]=elem。查找(“登录”).文本
I _ app[ is list ]=elem。find( is list ).文本
interfaceName.append(i_app)
对于elem.findall(params )中的p:
打印(p .查找(名称)。属性。get( type ))
print(p.find(value ).正文)
打印(p.find(must ).正文)
#打印(接口名称)
返回接口名称
getXML(test4.xml )
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。