PYTHON解析XML的多种方式效率对比实测
PYTHON解析XML的多种方式效率对比实测 在最初学习PYTHON的时候,只知道有DOM和SAX两种解析方法,但是其效率都不够理想,由于需要 处理的文件数量太大,这两种方式耗时太高无法接受。 在网络搜索后发现,目前应用比较广泛,且效率相对较高的ElementTree也是一个比较多人推荐的算法, 于是拿这个算法来实测对比,ElementTree也包括两种实现,一个是普通ElementTree ET ,个是 ElementTree.iterparse ET_iter。 本文将对DOM、SAX、ET、ET_iter四种方式进行横向对比,通过处理相同文件比较各个算法的用时来 评估其效率。 程序中将四种解析方法均写为函数,在主程序中分别调用,来评估其解析效率。 解压后的XML文件内容示例如下,我自己的需求是解析其中第一个measurement内容,其他的内容丢 弃。eNB的属性以及object的属性都需要解析并和v字段的文本一起写入csv文件。 xml version1.0 encodingUTF-8 bulkPmMrDataFile fileHeader fileatVersionVI.0.4 reportTime2016-02-22T210000.000 /f ileHeader eNB id122941 measurement smrMR.LteScRSRP MR.LteScRSRQ MR.LteScTadv MR.LteSceNBRxTxTimeDiff ・・・/ smr MmeGroupId1025 MmeCode NIL NIL NIL NIL NIL NIL NIL object id,,31472897 MmeUeSlapId,,2417300878 199 TimeStamp2016-02-22T200002.517 v38 22 6 31 34 0 34 38400 110 NIL NIL NIL NIL 7 23 NIL 26 24 0 0 /v /object object id”31472897” MmeUeSlapId2416229278 MmeGroupId,,1025 MmeCode 199 TimeStamp2016-02-22T200002.792 NIL NIL NIL NIL NIL NIL NIL v61 30 5 32 45 0 27 38400 110 NIL NIL NIL NIL 7 14 NIL 1 49 0 0 /v /object object id”31472897“ MmeUeSlapId,,2148286566 MmeGroupId,,1025 MmeCode 199 TimeStamp,,2016-02-22T200007.177 v42 26 5 31 30 412 35 38400 110 NIL NIL NIL NIL NIL NIL NIL NIL NIL N IL NIL 7 14 NIL 26 24 0 0 /v /object object id”31472897” MmeUeSlapId2417300878 MmeGroupId1025 MmeCode “199“ TimeStamp2016-02-22T200007.677 v39 22 7 31 35 387 36 38400 110 36 18 38400 108 NIL NIL NIL NIL NIL N IL NIL 5 10 NIL 25 25 0 0 /v /object object id”31472897“ MmeUeSlapId2416229278 MmeGroupId,,1025 MmeCode T99” TimeStamp2016-02-22T200007.962 v61 27 5 31 43 427 36 38400 110 49 4 38400 108 NIL NIL NIL NIL NIL NI L NIL 9 13 NIL 1 49 0 0 /v v61 27 5 31 43 427 36 38400 110 46 0 38400 295 NIL NIL NIL NIL NIL NI L NIL 9 13 NIL 1 49 0 0 /v /object object id”31472897” MmeUeSlapId,,269973066 MmeGroupId,,1025 MmeCode 199 TimeStamp2016-02-22T200008.382 v41 23 9 32 23 447 36 38400 110 32 11 38400 358 NIL NIL NIL NIL NIL N IL NIL 6 22 NIL 24 26 0 0 /v v41 23 9 32 23 447 36 38400 110 31 7 38400 295 NIL NIL NIL NIL NIL NI L NIL 6 22 NIL 24 26 0 0 /v v41 23 9 32 23 447 36 38400 110 28 8 38400 460 NIL NIL NIL NIL NIL NI L NIL 6 22 NIL 24 26 0 0 /v /object /measurement measurement smrMR.LteScPlrULQcil MR.LteScPlrULQci2 MR.LteScPlrULQci3 MR.LteScPlrULQ ci4 ・・./smr object id”60057088” MmeUeSlapId2416982066 MmeGroupId,,1025 MmeCode “206“ TimeStamp2016-02-24T060003.962 vNIL NIL NIL NIL NIL NIL NIL NIL 0 NIL NIL NIL NIL NIL NIL NIL NIL 0 /v /object /measurement measurement smrMR.LteScRIP/smr object id,,60057089379002H TimeStamp2016-02-24T060011.259 MmeCode NIL MmeGroupId,,NIL MmeUeSlapId,,NIL v81/v /object /measurement /eNB /bulkPmMrDataFile 召 http