Python日常问题记录

  1. 使用scrapy抓取百科的链接,抓到的都是经过encode的地址,试图将其decode并显示在控制台时,显示乱码

解决过程:
1. import urllib,试图使用urllib.unquote将其解码
import urllib
url = urllib.unquote(url.strip()) #url => "/fenlei/%E9%87%91%E8%9E%8D%E5%B8%82%E5%9C%BA"
print(url)
//显示 "'gbk' codec can't encode character u'\xe5' in position 8: illegal multibyte sequence"
//查阅资料,应该是windows控制台的编码是gbk导致
//于是各种尝试:
url = urllib.unquote(url.strip()).decode("utf-8") //不行
url = urllib.unquote(url.strip()).decode("gbk") //不行
//最终通过下边代码成功
url = urllib.unquote(str(url.strip())).decode("utf-8")

  1. 使用json模块处理中文,或者list等结构中含有中文,用json.dumps()转换为json存入到数据库中时,中文会自动转变为unicode,当取出来时,变成比如:
    a = '\u7387\u4e0a\u5347\u3001\u571f\u5730\u653f\u7b56\u653e\u677e\u3001'
    print a #"\u7387\u4e0a\u5347\u3001\u571f\u5730\u653f\u7b56\u653e\u677e\u3001"
    //这是可以用a.decode("unicode_escape")将其转换为unicode
    a = a.decode("unicode_escape") #a=u'\u7387\u4e0a\u5347\u3001\u571f\u5730\u653f\u7b56\u653e\u677e\u3001'
    print a #率上升、土地政策放松、
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容