解决pyshp UnicodeDecodeError的问题

用最新版本(2.1.0)的pyshp解析shp文件的records时:

records = sf.records()

如果records里面含有中文字段,那么就会报错:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xcc in position 0: invalid continuation byte

这个是编解码的问题,解决方法是把版本降到1.2.12就可以了,虽然records里面的中文字段还需要再次解码,但结果是很清晰的。

没有仔细阅读最新的官方文档,最后有Unicode and Shapefile Encodings说明。

因为最开始我用的是:

sf = shapefile.Reader('data/2009/2009.shp')

最新的版本可以直接设置编码方式,这样就好了:

sf = shapefile.Reader('data/2009/2009.shp', encoding='gbk')

以上这篇解决pyshp UnicodeDecodeError的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 利用pyshp包给shapefile文件添加字段的实例

    在已有的shapefile文件的基础上增加字段: # -*- coding:gb2312 -*- import shapefile r=shapefile.Reader(r"C:\Users\skfzh\Documents\python地理空间分析指南\第五章\5.5.4\output\NYC_MUSEUMS_UTM") w=shapefile.Writer(r"C:\Users\skfzh\Documents\python地理空间分析指南\第五章\5.5.4\output\

  • pyshp创建shp点文件的方法

    如下所示: # coding:utf-8 import shapefile w = shapefile.Writer() w.autoBalance = 1 w = shapefile.Writer(shapefile.POINT) w.field('x', 'C') w.field('y', 'C', '40') w.field('v', 'C', '40') # with open('data')as f0: # for line in f0: # line = line.strip() #

  • Python使用pyshp库读取shapefile信息的方法

    通过pyshp库,可以读写Shapefile文件,查询相关信息,github地址为 https://github.com/GeospatialPython/pyshp#reading-shapefile-meta-data import shapefile # 使用pyshp库 file = shapefile.Reader("data\\市界.shp") shapes = file.shapes() # <editor-fold desc="读取元数据"&g

  • 使用pyshp包进行shapefile文件修改的例子

    由于最近在处理shp文件,想要跳出arcpy的限制,所以打算学习一下pyshp包的使用方法.在使用<Python地理空间分析指南(第2版)>的时候发现书中部分代码由于版本更新,无法运行.开贴记录踩过的雷. 这个问题是出现在5.5.4的shapefile文件修改中: # -*- coding:gb2312 -*- import shapefile import utm file_path=r"C:\Users\skfzh\Documents\python地理空间分析指南\第五章\5.5

  • 解决pyshp UnicodeDecodeError的问题

    用最新版本(2.1.0)的pyshp解析shp文件的records时: records = sf.records() 如果records里面含有中文字段,那么就会报错: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xcc in position 0: invalid continuation byte 这个是编解码的问题,解决方法是把版本降到1.2.12就可以了,虽然records里面的中文字段还需要再次解码,但结果是很清晰的. 没有

  • Python运行报错UnicodeDecodeError的解决方法

    Python2.7在Windows上有一个bug,运行报错: UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 33: ordinal not in range(128) 解决方案如下: 编辑Python27\Lib\mimetypes.py文件,全选,替换为以下patch后的正确脚本,或者直接依据此patch修改: """Guess the MIME type of a file. Th

  • 解决编码问题:UnicodeDecodeError: 'utf-8' codec can't decod

    目录 UnicodeDecodeError: 'utf-8' codec can't decod python的编码声明 UnicodeDecodeError: 'utf-8' codec can't decod 有一次报错如下: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb3 in position 0: invalid start byte 编码问题: f = open(txtPath,'r',encoding='utf-8'

  • python3的UnicodeDecodeError解决方法

    爬虫部分解码异常 response.content.decode() # 默认使用 utf-8 出现解码异常 以下是设计的通用解码 通过 text 获取编码 # 通过 text 获取编码 import requests from lxml import etree def public_decode(): headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_1) AppleWebKit/537.36 (K

  • Python结巴中文分词工具使用过程中遇到的问题及解决方法

    本文实例讲述了Python结巴中文分词工具使用过程中遇到的问题及解决方法.分享给大家供大家参考,具体如下: 结巴分词是Python语言中效果最好的分词工具,其功能包括:分词.词性标注.关键词抽取.支持用户词表等.这几天一直在研究这个工具,在安装与使用过程中遇到一些问题,现在把自己的一些方法帖出来分享一下. 官网地址:https://github.com/fxsjy/jieba 1.安装. 按照官网上的说法,有三种安装方式, 第一种是全自动安装:easy_install jieba 或者 pip

  • python解决汉字编码问题:Unicode Decode Error

    前言 最近由于项目需要,需要读取一个含有中文的txt文档,完了还要保存文件.文档之前是由base64编码,导致所有汉字读取显示乱码.项目组把base64废弃之后,先后出现两个错误: ascii codec can't encode characters in position ordinal not in range 128 UnicodeDecodeError: 'utf8' codec can't decode byte 0x. 如果对于ascii.unicode和utf-8还不了解的小伙伴

  • Python转码问题的解决方法

    比如,若要将某个String对象s从gbk内码转换为UTF-8,可以如下操作 s.decode('gbk').encode('utf-8′) 可是,在实际开发中,我发现,这种办法经常会出现异常: UnicodeDecodeError: 'gbk' codec can't decode bytes in position 30664-30665: illegal multibyte sequence 这 是因为遇到了非法字符--尤其是在某些用C/C++编写的程序中,全角空格往往有多种不同的实现方式

  • Python使用pickle模块存储数据报错解决示例代码

    本文研究的主要是Python使用pickle模块存储数据报错解决方法,以代码的形式展示,具体如下. 首先来了解下pickle模块 pickle提供了一个简单的持久化功能.可以将对象以文件的形式存放在磁盘上. pickle模块只能在python中使用,python中几乎所有的数据类型(列表,字典,集合,类等)都可以用pickle来序列化, pickle序列化后的数据,可读性差,人一般无法识别. 接下来我们看下Python使用pickle模块存储数据报错解决方法. 代码: # 写入错误 TypeEr

  • 新手常见6种的python报错及解决方法

    此篇文章整理新手编写代码常见的一些错误,有些错误是粗心的错误,但对于新手而已,会折腾很长时间才搞定,所以在此总结下我遇到的一些问题.希望帮助到刚入门的朋友们. 1.NameError变量名错误 报错: >>> print a Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'a' is not defined 解决方案:

  • Python 解决中文写入Excel时抛异常的问题

    近期接到业务部门需求,需将统计结果每日发送到业务部门,在调试python脚本的时候,导出的Excel标题为中文,总是抛出以下异常 Traceback (most recent call last): File "totalpx.py", line 99, in <module> export() File "totalpx.py", line 54, in export workbook.save(out_path) File "/usr/li

随机推荐