一、UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe6

当路径或数据名称中有中文存在时,需要指定为中文类编码,ASCII码不能识别。
在程序头添加语句# -- coding: utf-8 --,并在中文前加字符 u 即可.

例如:
(1)

  env.workspace= u"D:/python练习/new.gdb.教育设施"

(2)

facility = arcpy.ListFeatureClasses()for faci in facility:name = faci+u"服务区"

二、UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 21-32: ordinal not in range(128)
在语句# -- coding: utf-8 --下,添加:

import sys
reload(sys)
sys.setdefaultencoding('utf8')

详解
ASCII码:设计之初,就只想到在美国的小范围圈子用,表示编程常用到的数字,大小写的英文字母等,128个。
Unicode:不同的语言就需要不同的字符来表示。当初26个英文字母大小写,在加上些数字以及符号,用128个就够了。但是,如果推向世界,拿中文来说,中文每个汉字就需要每个不同的符号来表示。所以这时候就需要把范围扩大,扩大后就是Unicode,就像它的英文名,表示能表示所有字符。Unicode是好,但是占用的内存也大。原来用四分之一存储空间的ASCII码就能表示英文,但是用Unicode表示也是英文,但是内存却涨了一倍。所以需要优化。这就又有了utf-8。
utf-8:特点是,可以根据需要,该用多少就用多少,能有效减少内存的占用。
gbk : 中文专属的编码。

Python中默认编码方式是Unicode。其它类型的编码想正常输出就需要通过decode和encode两种方式进行转。例如:内容是utf-8格式,打印出来是乱码,需要通过decode.(‘utg-8’)解码为Unicode,然后再通过encode.(‘gbk’)的方式编码为gbk,才能显示为中文。

浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器,所以你看到很多网页的源码上会有类似’charset='utf-8’的信息,表示该网页是用的UTF-8编码

编码类型琐碎问题:

1、若本身字符为unicode 类型,显示中文可以使用:

a="abcc\\u8fdd\\u6cd5\\u8fdd\\u89c4"
print a.decode('unicode-escape')

2、使用chardet包下的detect方法检测字符编码:

a = '中国'
print chardet.detect(a)

结果为:{‘confidence’: 0.7525, ‘language’: ‘’, ‘encoding’:‘utf-8’}

3、在读取本地文字作为url一部分时,通常会出现编码错误,可使用:

for row in readCSV:a = row[0]quoteA = urllib.quote(a.decode('gbk').encode('utf-8'))
url = 'https://restapi.amap.com/v3/geocode/geo?address=' + quoteA +     '&key=a0325cbd9f7ab7eeb1bdb16ca78922b2'
print url

4、若字符连接类型不一致,例如list.append(),只能填一个参数:

lat = obj["location"]["lat"]
lng = obj["location"]["lng"]
adress = obj["address"]
result=str(lat)+","+str(lng) + ","+adress
list.append(result)

5、python2在直接导出csv时中文乱码,不能像python3一样设置编码,解决方案如下:

import  codecs
#该模块的作用是
with open (u'C:\\Users\\RSGIS201-4\\Desktop\\try.csv', 'w+')as file:for v in list:file.write(codecs.BOM_UTF8)#csv\excel只能识别gb2312、gbk、gb18030或utf_8 with BOM编码的中文file.write(v+'\n')

6、遍历json内部同类对象的方式:

result2=[(d['address'],str(d["location"]["lat"]),str(d["location"]["lng"])) for d in jsonfile["results"]]
print result2      #对象为数组的列表[(),(),()]
result1=[(d['address']+","+str(d["location"]["lat"])+","+str(d["location"]["lng"])) for d in jsonfile["results"]]
print result1     #对象为str的列表[ , , ]

或者直接循环:

for obj in jsonfile["results"]:lat = obj["location"]["lat"]lng = obj["location"]["lng"]adress = obj["address"]result=str(lat)+","+str(lng) + ","+adresslist.append(result)

关于python基础错误UnicodeDecodeError、TypeError相关推荐

  1. python基础——错误处理

    python基础--错误处理 在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因.在操作系统提供的调用中,返回错误码非常常见.比如打开文件的函数 ...

  2. python nonetype_【已解决】Python程序错误:TypeError: ‘NoneType’ object is not iterable

    [问题] 如下代码:def callBlogFunc(funcToCall, *paraList): funcName = funcToCall.func_name; if(blogIsNetease ...

  3. python:错误:TypeError: string argument without an encoding;str() takes at most 1 argument

    这两个错误是相关连的python2.python3的兼容错误. sd=bytes("abc1\ndone", encoding='utf-8'); bytes类在python3,有 ...

  4. Python 编码错误UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xac in position 131: illegal multibyte

    报错:UnicodeDecodeError: 'gbk' codec can't decode byte 0xac in position 131: illegal multibyte sequenc ...

  5. Python错误:TypeError: 'list' object is not callable

    前言 在学习并使用Python的过程中,总会遇到各种各样的错误,因此,写下整个系列的帖子,方便自己回顾,也方便其他同学参阅. 正文 在Python运行过程中遇到了如下错误: TypeError: 'l ...

  6. python中ioerror怎么解决_Python IOError错误异常原因|python基础教程|python入门|python教程...

    https://www.xin3721.com/eschool/pythonxin3721/ python语言IOError错误一般多发生在对文件操作报错时,表示要打开的文件不存在,当然能引发IOEr ...

  7. python提示错误TypeError: 'dict_keys' object does not support indexing

    python提示错误TypeError: 'dict_keys' object does not support indexing 原因:python2与python3之间的差异 python2中形如 ...

  8. python import 错误 TypeError: 'module' object is not callable

    python import 错误 TypeError: 'module' object is not callable 在这里,有 Person.py test.py; 在 test.py 里面 im ...

  9. Python:Python3错误提示TypeError: slice indices must be integers or None or have an __index__ method解决办法

    Python:Python3错误提示TypeError: slice indices must be integers or None or have an __index__ method解决办法 ...

最新文章

  1. 当 Redis 发生高延迟时,到底发生了什么
  2. c++ :MFC opencv使用namedWindow,imshow出现两个窗口
  3. LongAdder分段锁机制
  4. LSTM之父重提30年前的「快速权重存储系统」:线性Transformer只是它的一种变体...
  5. 反射java_Java反射原理
  6. 视达配色教程17 灰色的色彩意象是什么
  7. 数据安全管理:RSA加密算法,签名验签流程详解
  8. 《天天数学》连载18:一月十八日
  9. WebService工具类调用远程接口服务时java.io.IOException: Server returned HTTP response code: 500 for URL XXX
  10. [NOI2014]魔法森林
  11. Mocha BSM产品亮点——SNMP Trap的支持
  12. 163邮箱服务器连接错误 请重试,163邮箱无法连接服务器
  13. 英特尔第十代处理器为什么不支持win7_Intel最新CPU和主板不能装Win7怎么办
  14. 二级计算机题世界动物日,计算机二级考试真题-PPT-张宇-世界动物日介绍
  15. JavaScript,实现这样的情景:阅读协议,阅读完毕后就可以点击同意复选框。
  16. C# 创建桌面快捷方式
  17. 基于中文语义词典的语义相关度量方法比较研究
  18. 深度学习培训完可以找工作吗?深度学习可以做什么?
  19. python定位元素_Python元素定位
  20. 设计师专属的导航网站

热门文章

  1. 电感为什么会啸叫?有效对策有哪些?
  2. 4.1.1Linux心得
  3. FANUC机器人系统在维修替换控制器主板上的电池和机器人本体上的电池
  4. 单向空间后方交会C++代码实现
  5. 1.公司代码管理工具GIT与SVN
  6. 5G#DVEV (Development environment-开发环境)
  7. Mysql一个Select 查询出表内语文及格数学及格的算合格,其他算不合格的统计人数
  8. 【Cocos2d-x】模仿热血传奇开门动画
  9. 一万次交易反复验证:庄家一旦出现,那就坐着庄家的顺风车干吧!
  10. RK3568平台开发系列讲解(驱动篇)class:设备的大管家