解决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的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
利用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
随机推荐
- jQuery实现ajax无刷新分页页码控件
- IIS和4.0安装到底有没有先后顺序解答
- 深入uCOS中全局变量的使用详解
- 解决python3在anaconda下安装caffe失败的问题
- iOS应用开发中使用NSLocale类实现对象信息的本地化
- ASP.NET操作EXCEL的总结篇
- 巧方法 JavaScript获取超链接的绝对URL地址
- js中字符型和数值型数字的互相转化方法(必看)
- Javascript实现检测客户端类型代码封包
- Activity配置、启动和关闭activity实例详解
- JS实现alert中显示换行的方法
- 改变文件域的样式实现思路同时兼容ie、firefox
- java获取当前时间和前一天日期(实现代码)
- CentOS 7 下LAMP实现及基于https的虚拟化主机
- js闭包实例汇总
- 开机CPU就是100%cmd.exe病毒进程清除方法
- win2008 iis7/iis7.5下最简单最强安装多版本PHP支持环境
- 轻松掌握Java单例模式
- 浅谈vuex 闲置状态重置方案
- iOS NSURLSessionDownloadTask实现文件断点下载的方法