pykml和utf8:要么输入不正确,要么我不知道

2024-10-02 10:31:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个来自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>

Tags: 文件nameinparserwwwfolderkmldocument
2条回答

在这里没有看到答案,但这些是我使用的LMXLStringElements。文本来修复这个错误。在

更改打印(项目经理姓名)打印(项目名称文本)在

https://lxml.de/api/lxml.objectify.StringElement-class.html

您需要以指示Python将字节解释为UTF-8字符的方式打开文件。在Python2.7中,可以使用 ^{} module来完成。在

import codecs
with codecs.open(KMZFIL, encoding='utf-8') as f:

在python3中,encoding选项已经添加到标准的open中,因此不需要使用codecs。在

相关问题 更多 >

    热门问题