美文网首页
Python日常问题记录

Python日常问题记录

作者: Captain_tu | 来源:发表于2017-06-28 16:42 被阅读29次
    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 #率上升、土地政策放松、

    相关文章

      网友评论

          本文标题:Python日常问题记录

          本文链接:https://www.haomeiwen.com/subject/emiucxtx.html