1. 序
我觉得 Python 2.7 最大的坑就是字符编码的问题,默认不支持中文。就算你加个中文呢注释都要在文件顶部指定:# -*- coding: utf-8 -*-
。
说真的,我从来搞不懂也记不住这些个编码解码巴拉巴拉。。。
但是前两天还真的遇到一个问题了。
2. 需求
有一份数据要入库,数据来源是从一个 API 获取 json 数据,解析成行之后写到文件里
到 HDFS 目录就好了。
Python 解析 json 非常方便。但是偏偏开发的这个接口的哥们儿返回的都是 \u7f16\u7801\u771f\u8ba8\u538c
这样的结果,查了一下原来是 unicode 中文编码以 ascii 码的方式来解析的结果。
一开始还以为是字符集的问题,查了半天才找到了两个解决方案:
3. 解决方案
a. str.decode
print '''\u7f16\u7801\u771f\u8ba8\u538c'''.decode('unicode_escape')
#输出:编码真讨厌
b. codecs.open
with codecs.open(file_name, 'w', 'utf-8') as f:
f.write('\n'.join([ '\001'.join(row) for row in lines ]))
不错,不错,看看了!
我又来了,您高兴吗?!
看看!
不错,不错,看看了!
确实不错,这个要实话实说!
到此一游,立贴为证!
博文值得拜读。受益了!
研究研究,学习学习。
看看您的博客!