我有一个来自www的kmz文件,并希望使用pykml将其读取到csv或类似文件中。该文件是UTF8格式的,或者至少它声称是这样的-请参阅下面的标题。读取它是可行的,但在读到第一个重音字符时会触发错误。
<?xml version='1.0' encoding='UTF-8'?>
<kml xmlns='http://www.opengis.net/kml/2.2'>
<Document>
<name>
from pykml import parser
with open(KMZFIL) as f:
folder=parser.parse(f).getroot().Document.Folder
for pm in folder.Placemark:
print(pm.name)
Ablitas (militar) (Emerg)
Ademuz (forestal)
Ager (PL%)
Alcala del Rio (ILIPA MAGNA)(Esc.)
Traceback (most recent call last):
File "bin4/b21_xxxxxxx", line 15, in <module>
print(pm.name)
grep "name" $INFIL | head -7
( ... )
<name>Ablitas (militar) (Emerg)</name>
<name>Ademuz (forestal)</name>
<name>Ager (PL%)</name>
<name>Alcala del Rio (ILIPA MAGNA)(Esc.)</name>
<name>Ainzón</name>发布于 2016-10-21 23:59:08
您需要以指示Python将字节解释为UTF-8字符的方式打开文件。
import codecs
with codecs.open(KMZFIL, encoding='utf-8') as f:在Python3中,encoding选项已经添加到标准open中,因此不需要使用codecs。
发布于 2018-09-18 03:48:47
我在这里没有看到答案,但这些都是lmxl StringElements --我使用.text修复了这个错误。
将打印(pm.name)更改为打印(pm.name.text)
https://stackoverflow.com/questions/40180598
复制相似问题