将XML文档作为Python对象一样工作
项目描述
mappet
Mappet已被创建,以便能够以简单直观的方式在Python代码中处理XML结构。
底层使用了一个众所周知的lxml模块,主要是因为XML解析性能。
Mappet接受一个包含有效XML的字符串,一个lxml.etree._Element对象或一个表示XML树的字典。
>>> import mappet >>> f = open('example.xml', 'r') >>> m = mappet.Mappet(f.read())
例如,使用了以下结构的XML文档:
<?xml version='1.0' encoding='iso-8859-2'?>
<a-message>
<head>
<id seq="20" tstamp="2015-07-13T10:55:25+02:00"/>
<initiator>Mr Sender</initiator>
<date>2015-07-13T10:56:05.597420+02:00</date>
<type>reply-type</type>
</head>
<auth>
<user first-name="Name" last-name="LastName">id</user>
</auth>
<status>
<result>OK</result>
</status>
<reply>
<cars>
<Car>
<id>12345</id>
<Manufacturer>BMW</Manufacturer>
<Model_Name>X6</Model_Name>
<Body>SUV</Body>
<Fuel>Diesel</Fuel>
<Doors>5</Doors>
<ccm>3000</ccm>
<HP>256</HP>
<TransType>Automatic</TransType>
<seats>5</seats>
<weight>3690</weight>
</Car>
<Car>
<id>54321</id>
<Manufacturer>BMW</Manufacturer>
<Model_Name>X1</Model_Name>
<Body>SUV</Body>
<Fuel>Diesel</Fuel>
<Doors>5</Doors>
<ccm>3000</ccm>
<HP>198</HP>
<TransType>Automatic</TransType>
<seats>5</seats>
<weight>2890</weight>
</Car>
</cars>
</reply>
</a-message>
约定
每个XML节点可以通过两种方式访问:通过属性和项目访问。
字典访问
由于Python变量名称的限制,标签名称已规范化以进行属性访问。标签名称被规范化为小写,连字符被下划线替换。
默认情况下,值以str的形式返回。
>>> m['reply']['cars']['Car'][0]['Manufacturer'] 'BMW'
节点名称区分大小写。
属性访问
由于Python变量名称的限制,标签名称已规范化以进行属性访问。标签名称被规范化为小写,连字符被下划线替换。
使用属性访问的相同示例(__repr__ 负责表示标签)
>>> m.reply.cars.car[0].manufacturer BMW
要获取字符串表示,请使用 get()。
>>> m.reply.cars.car[0].manufacturer.get() 'BMW'
get() 有两个参数,默认值 和 回调函数。第一个在节点值空时返回,第二个是返回值时要调用的函数。
>>> m.reply.cars.car[0].ccm.get(callback=int) 3000
或者,可以使用在 helpers.py 中定义的内建辅助函数
>>> m.reply.cars.car[0].ccm.to_int() 3000
辅助函数
to_bool
to_int
to_str
to_string
to_float
to_time
to_datetime
to_date
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源代码分布
mappet-0.1.2.tar.gz (10.7 kB 查看哈希值)
构建分布
mappet-0.1.2-py2-none-any.whl (13.7 kB 查看哈希值)
关闭
mappet-0.1.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 40c6e394d6986e2a2ec24ad83296c100539886460c6b9110e3842b170198a743 |
|
MD5 | 50310ab48e3952551252936a7c5e2e7f |
|
BLAKE2b-256 | a2faa2b5a78703bb1b93cffebbc534092595b9da88f323bc4d94eaaf4fb7877c |
关闭
mappet-0.1.2-py2-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5547df1e4a7129f44d78ae65f73b2bec95dfc8b38abda6babc1034ecaec573ee |
|
MD5 | faf0bb490f06d1945f6f33d303f5df8c |
|
BLAKE2b-256 | 5731a2640e90586af356c6063f2bac91fe11736e45fb7d4c9ff414ce6de9c7f4 |