python中烦人的编码问题

原创
2015/06/18 02:04
阅读数 876

mysql数据中都是UTF编码,导出到文件称csv还是xls都是utf-8,用python的pandas读取可以,但每次写代码的时候都需要很小心看文件原来是什么编码

比如如果在read_csv()中没用encoding转换为Unicode编码的话在后面的字段名什么都要用.decode('utf-8')来解码巨麻烦,而且在用to_csv()之类的保存时候还得再次用到encoding编码将其Unicode转换为utf-8,而且好像window都不认utf-8的,果然还是应该转换为gbk呢,,,

最最关键是python在shell和自带的IDEL中的编码竟然是不同的!!明明在IDEL中用encoding=utf,也就是 :

#coding=UTF-8

print repr('我')

#这个是一个utf编码

print repr(u'我')

#这个是一个Unicode

print repr('我'.decoding='UTF-8')

#这个是一个Unicode

但在shell中却是:

print repr('我')

#这个是一个GBK编码

print repr(u'我')

#这个是一个用unicode来读的GBK编码,也就是乱码。。。

print repr('我'.decode('gbk'))

#这个才是一个Unicode

以后再window平台不管三七二一都改成GBK编码算了,省心

展开阅读全文
打赏
0
7 收藏
分享
加载中
Kanonpy博主
循环只有if, if 放在后面
[i**2 for i range(10) if i%2]
循环有if else, if else 放在前面
[i**2 if i%2 else 0 for i range(10)]
2015/06/20 03:41
回复
举报
Kanonpy博主
见到一个超棒的代码,
def make_acronym(phrase):
try:
return ''.join(word0.upper() if word.isalpha() else 0 for word in phrase.split())
except AttributeError:
return 'Not a string'
except TypeError:
return 'Not letters'
2015/06/20 03:39
回复
举报
更多评论
打赏
2 评论
7 收藏
0
分享
返回顶部
顶部