zoukankan      html  css  js  c++  java
  • python reload(sys)找不到,name 'reload' is not defined

    • 在操作数据库的时候遇到这个问题,为什么会出现这种原因?查询如下:
    • python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128),python没办法处理非ascii编码的,此时需要自己设置将python的默认编码,一般设置为utf8的编码格式。
      具体原因传送门:https://www.jianshu.com/p/9686bfa7e81c

    • 解决办法:
    • 首先看一下自己使用的python版本,python2 和 python3 处理的方法不同
    • python2解决办法,加上如下代码,
    • import sys 
      reload(sys) 
      sys.setdefaultencoding(‘utf-8’) 
      

        

    • python3解决办法,加上如下代码,
    • import importlib,sys 
      importlib.reload(sys)
      

        

    • 说明:
    • 在Python2.x中由于str和byte之间没有明显区别,经常要依赖于defaultencoding来做转换。 
    • 在python3中有了明确的str和byte类型区别,从一种类型转换成另一种类型要显式指定encoding。
    • 问题解决!
  • 相关阅读:
    Flume_常见的几个问题
    Flume_使用
    Flume_初识
    日志分析_对一号店日志分析
    Hadoop_UDTF示例
    Hadoop_UDAF示例
    Hadoop_UDF示例
    Hive_数据倾斜处理
    Hadoop openssl false
    饶过验证后,用post的方式发送Http请求,获得response相应内容
  • 原文地址:https://www.cnblogs.com/longbigbeard/p/9307218.html
Copyright © 2011-2022 走看看