解决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\
-
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创建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() #
-
使用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
随机推荐
- IOS游戏开发之五子棋OC版
- 详解java 中Spring jsonp 跨域请求的实例
- java实现mysql操作类分享 java连接mysql
- IOS中Json解析实例方法详解(四种方法)
- 浅谈Main方法的参数
- JavaSript中变量的作用域闭包的深入理解
- PHP使用Mysqli类库实现完美分页效果的方法
- 里氏代换原则_动力节点Java学院整理
- 在vue-cli脚手架中配置一个vue-router前端路由
- mysql中coalesce()的使用技巧小结
- PHP、Nginx、Apache中禁止网页被iframe引用的方法
- 密码知识教程二
- winform获取当前名称实例汇总
- javascript SpiderMonkey中的函数序列化如何进行
- Lua中的面向对象编程详解
- REPLICATE 以指定的次数重复字符表达式
- 本地 二级域名配置方法
- 浅谈标签和JLabel类构造方法 原创
- Android实现短信验证码获取自动填写功能(详细版)
- C#实现大数字运算的实例代码