Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode问题解决
2016-11-29 09:54
501 查看
执行一段Python代码时报错:UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-5: ordinal not in range(128)
/Users/nisj/PycharmProjects/EsDataProc/excel_index_find.py
解决方法:
在开头加上
修改后的代码:
/Users/nisj/PycharmProjects/EsDataProc/excel_index_find.py
系统的默认编码查看:
/Users/nisj/PycharmProjects/EsDataProc/excel_index_find.py
# -*- coding=utf-8 -*- # !/usr/bin/python import xlrd import xlwt data = xlrd.open_workbook('/Users/nisj/Desktop/new demand/Excel_python_oper.xlsx') table = data.sheet_by_name(u'gen_code_x')#通过名称获取 print table.nrows from xlrd import open_workbook def genDictByPhone(xls_file,phone): l = [] wb = open_workbook(xls_file) sheet = wb.sheet_by_index(0) for irow in range(sheet.nrows): c_row = sheet.row(irow) print c_row[0].value if str(c_row[0].value) == str(phone): d = {} d['name'] = c_row[0].value # d['name'] = c_row[0].value # d['age'] = c_row[1].value # d['addr'] = c_row[2].value # d['phone'] = c_row[3].value l.append(d) return l genDictByPhone('/Users/nisj/Desktop/new demand/Excel_python_oper.xlsx', '天王的纷争')
解决方法:
在开头加上
import sys reload(sys) sys.setdefaultencoding( "utf-8" )则问题解决。
修改后的代码:
/Users/nisj/PycharmProjects/EsDataProc/excel_index_find.py
# -*- coding=utf-8 -*-
# !/usr/bin/python
import xlrd
import xlwt
import sys reload(sys) sys.setdefaultencoding( "utf-8" )
data = xlrd.open_workbook('/Users/nisj/Desktop/new demand/Excel_python_oper.xlsx')
table = data.sheet_by_name(u'gen_code_x')#通过名称获取
print table.nrows
from xlrd import open_workbook
def genDictByPhone(xls_file,phone):
l = []
wb = open_workbook(xls_file)
sheet = wb.sheet_by_index(0)
for irow in range(sheet.nrows):
c_row = sheet.row(irow)
print c_row[0].value
if str(c_row[0].value) == str(phone):
d = {}
d['name'] = c_row[0].value
# d['name'] = c_row[0].value
# d['age'] = c_row[1].value
# d['addr'] = c_row[2].value
# d['phone'] = c_row[3].value
l.append(d)
return l
genDictByPhone('/Users/nisj/Desktop/new demand/Excel_python_oper.xlsx', '天王的纷争')
系统的默认编码查看:
import sys print sys.getdefaultencoding()
相关文章推荐
- 解决Python写入文件编码问题(UnicodeEncodeError: 'ascii' codec can't encode characters in...)
- 解决Python2.7的UnicodeEncodeError: ‘ascii‘codec can’t encode异常错误
- 解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
- 解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
- 解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
- 解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
- 解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
- 解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
- python2.7出现[UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-11]的解决
- 解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
- 解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
- 解决Python2.7的UnicodeEncodeError: 'ascii' codec can't encode异常错误
- python UnicodeEncodeError: 'ascii' codec can't encode characters 解决办法
- python编码问题——解决python3 UnicodeEncodeError: 'gbk' codec can't encode character '\xXX' in position XX
- 解决Python字符串问题:UnicodeEncodeError: 'ascii' codec can't encode characters in position问题
- python编码问题——解决python3 UnicodeEncodeError: 'gbk' codec can't encode character '\xXX' in position XX
- Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode 错误
- Python 解决UnicodeEncodeError: 'ascii' codec can't encode characters in position问题
- python2.7解决UTF-8 UnicodeEncodeError:'gbk' codec can't encode character u'\xa5' in position
- 方法编码解决Python2.x的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误