我试图遍历一个XML文档,找到一些标记,将它们组合成一个新的,然后使用python中的ElementTree模块写回XML文档。在
我的代码已经到了我认为它可以工作的程度,但是当我开始写文件时,我收到了一个错误:
AttributeError: '_IterParseIterator' object has no attribute 'write'
我试图解析的文件是120mb,所以我认为使用interparse会更有效。这也是我比较熟悉的。在
^{pr2}$我正在解析的XML文件的一个小示例:
<?xml version="1.0" encoding="UTF-8"?>
<osm version="0.6" generator="Overpass API 0.7.55.3 9da5e7ae">
<note>The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.</note>
<meta osm_base="2018-06-22T21:32:02Z"/>
<bounds minlat="28.3156000" minlon="-81.6952000" maxlat="28.4497000" maxlon="-81.4257000"/>
<node id="26794208" lat="28.3306444" lon="-81.5475040" version="14" timestamp="2014-07-07T10:17:59Z" changeset="24000940" uid="14293" user="KindredCoda"/>
<node id="26794209" lat="28.3612495" lon="-81.5194078" version="17" timestamp="2014-07-05T01:17:25Z" changeset="23960255" uid="14293" user="KindredCoda"/>
<node id="26794210" lat="28.3822849" lon="-81.5005573" version="25" timestamp="2018-02-26T21:48:01Z" changeset="56704055" uid="4018842" user="Stephen214">
<tag k="highway" v="motorway_junction"/>
<tag k="old_ref" v="27"/>
<tag k="ref" v="68"/>
</node>
<way id="596852739" version="1" timestamp="2018-06-12T09:57:29Z" changeset="59771511" uid="5659851" user="marthaleena">
<nd ref="5289076747"/>
<nd ref="5126801577"/>
<tag k="HFCS" v="Urban Collector"/>
<tag k="highway" v="unclassified"/>
<tag k="lanes" v="2"/>
<tag k="name" v="Polynesian Isles Boulevard"/>
<tag k="tiger:cfcc" v="A41"/>
<tag k="tiger:county" v="Osceola, FL"/>
<tag k="tiger:name_base" v="Polynesian Isles"/>
<tag k="tiger:name_type" v="Blvd"/>
<tag k="tiger:reviewed" v="no"/>
<tag k="tiger:zip_left" v="34746"/>
<tag k="tiger:zip_right" v="34746"/>
</way>
因为iterparse()在返回元组时没有write函数,因此不能用与.parse()相同的方式写入文档。将代码切换为使用parse解决了这个问题。在
相关问题 更多 >
编程相关推荐