`
uule
  • 浏览: 6349229 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

【Python错误总结】

 
阅读更多

Python遇到的问题和解决方法

1、Python的from import和import的区别?

 

from import : 从车里把矿泉水拿出来,给我

import : 把车给我

 

import datetime

print(datetime.datetime.now())

是引入整个datetime包

from datetime import datetime

print(datetime.now())

是只引入datetime包里的datetime类

 

所以import之后前者是datetime这个包可见 后者是datetime.datetime这个类可见

 

2. ImportError: No module named 'cookielib'1

Python3中,改成 import  http.cookiejar,然后方法里也改成 http.cookiejar,查找替换就行

 

3. NameError: name 'raw_input' is not defined

在版本3中已经用input()替换

 

4. Import error: No module name urllib

from urllib.request import urlopen

 

5. ImportError: No module named urllib2

Python 3中urllib2用urllib.request替代

 

6、TypeError: write() argument must be str, not bytes

文件打开的方式有问题

 

之前文件打开的语句是:

f=open("list.pkl","w+")

然后使用二进制方式打开就没有这个问题:

f=open("list_account.pkl","wb+")

产生问题的原因是因为pickle存储方式默认是二进制方式

 

 

写文件处 open(filename, 'w').write 应该写为 open(filename, 'wb').write

 

 7、Python 3.x Error:TypeError: a bytes-like object is 

 

8、TabError: Inconsistent use of tabs and spaces in indentation

这个错误是说你用了tab键作缩进了

在python里不用大括号来区分程序块,用缩进

所以缩进很重要

 

你把tab都换成空格就好了

 

 9、can't use a string pattern on a bytes-like object

 3.0现在的参数更改了,现在读取的是bytes-like的,但参数要求是chart-like的,找了一下,加了个编码:

data = data.decode('GBK')

在与正则使用前,就可以正常使用了..

 

 10、TypeError: ‘NoneType’ object is not iterable

 去找找你所调用的函数的返回的值的类型,是否和返回值所赋值的变量的类型,两者是否匹配。

 

11、module 'urllib' has no attribute 'urlencode'

Python3的话,包内部的代码结构貌似变化了,要用urllib.parse.urlencode()来调用才对。

 

12、python3.x执行post请求时报错“POST data should be bytes or an iterable of bytes...”的解决方法

在urlencode语句后加encode(encoding='UTF8')

eg:

params = urllib.parse.urlencode({'userid':'381fccbd776c4deb'}).encode(encoding='UTF8')

问题解决

 

 13.SyntaxError: Non-UTF-8 code starting with '\xc9' in file

 

首行增加,已测试可用。

# coding=gbk

程序中出现中文,运行的时候出现如下错误:

SyntaxError: Non-UTF-8 code starting with 'xc1' in file C:...xxx.py on line 8, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

导致出错的根源就是编码问题。

解决方案是:

在程序最上面加上:

# coding=gbk搜索

这样程序就可以正常运行了。

 

14、使用 Sublime 工具时报Decode error - output not utf-8解决办法

打开Python.sublime-build文件,并添加"encoding":"cp936"这一行,保存即可

{

    "cmd": ["python", "-u", "$file"],

    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",

    "selector": "source.python",

    "encoding":"cp936"

}

 

Python.sublime-build文件存放地址:

C:\Users\用户名\AppData\Roaming\Sublime Text 2\Packages\Python

 

实在找不到的话可以这样来查找:

tools->build system -> New Build System 

此时会打开一个新文件,不用输入内容,直接保存,看看保存到哪里去了吧.

 

15、安装scrapy时报错:[twisted] CRITICAL: Unhandled error in Deferred:



 

 16、爬取链接时,urlopen().read()后,返回的是b'\x1f\x8b\x08\x00\x00\x00\x00\。。。

 

解决思路:

1、刚开始尝试了bytes转Str类型的各种方法,都不起作用,报错

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte

 

2、突然发现python有个第三方包叫chardet,它可以自动帮你识别出网页的编码

import chardet

import urllib2

 

#可根据需要,选择不同的数据

TestData = urllib2.urlopen('http://www.baidu.com/').read()

print chardet.detect(TestData)


 
准确的判断编码方式是utf-8.

 

3、我测试后,返回的编码却为这种None:

{'encoding': None, 'confidence': 0.0}

 

原来是这个页面的编码问题,该页面返回的是gzip编码,实际上每次应该判断页面信息的'Content-Encoding'是否为'gzip'。 

urllib支持gzip页面自动解压而urllib2不支持。 所以对于这种页面, 先解压再read:

try: 
	response = urllib2.urlopen(self.url, timeout = self.timeout) 
	if response.info().get('Content-Encoding', "") == 'gzip': 
		buf = StringIO.StringIO(response.read()) 
		f = gzip.GzipFile(fileobj=buf) 
		content = f.read() 
	else: 
		content = response.read() 
		content = self.enc_dec(content) 
		return content 
	except socket.timeout: 
		log.warn("Timeout in fetching %s" % self.url)

 

方法2:

def getUrlContent(url):  
    #返回页面内容  
    doc = urllib.request.urlopen(url).read()  
    #解码  
    try:  
        html=gzip.decompress(doc).decode("utf-8")  
    except:  
        html=doc.decode("utf-8")  
    return html  

 

自己的解决方法是在请求时,将header中的

'Accept-Encoding':'gzip, deflate, sdch', 注释掉即可获取到正常的bytes数据

 

然后自己再次识别编码,结果为:{'encoding': 'utf-8', 'confidence': 0.99}

最后再bytes转换为 str,即可获得完整可识别的HTML代码。

 

==============================================================================

解压:

 

def ungzip(data):    
    try:      
        print('正在解压.....') 
        print(data)   
        data = gzip.decompress(data)    
        print('解压完毕!')    
    except:    
        print('未经压缩, 无需解压')    
    return data 
 结果:

 

正在解压.....
b"\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03\x14\xcaM\x0e@0\x10\x06\xd0\xbb|kii\x98xc7!\x82\x7fU\x00\x00\x00"
解压完毕!
b'{"status":"loginok","msg":"\\u767b\\u9646\\u6210\\u529f"}'

 

 

17、UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

 

18、python getaddrinfo failed

HOST="" 中间没有空格

 

19、数据转换:

b'{"status":"ok","total":"36","data":[{"id":"115878","uid":"3364","type":"9","pay":"\\u7b7e\\u5230\\u7ea2\\u5305"...}]}'

转为{"status":"ok","total":"36","data":[{"id":"115878","uid":"3364","type":"9","pay":"\u7b7e\u5230\u7ea2\u5305"...}]}

 

op = signsession.get(url)

#print(op.content)

data = op.content.decode()

 

  • 大小: 46 KB
  • 大小: 16.6 KB
分享到:
评论

相关推荐

    Python错误机制总结

    Python 捕捉错误 类型 总结

    python上机实验报告总结.pdf

    实验报告总结强调了Python与C语言之间的共通性,即都需要逻辑思维和上机实践。通过不断练习和阅读他人的代码,学生可以更好地理解和运用Python语法,例如理解元组、列表等数据结构的特性。此外,报告鼓励将Python...

    python开发总结——c程序员python之路

    ### Python开发总结——C程序员的Python之路 #### 引言 随着软件开发领域的不断发展与变化,许多原本专注于C语言的开发者也开始转向学习Python这一高级语言。对于习惯了C语言的程序员而言,掌握Python不仅可以拓宽...

    Python学习心得&总结.doc

    如果不隔开语句,Python解释器将不能正确解释,提示语法错误:SyntaxError: invalid syntax 三、分号的使用 分号是Python中的一个符号,它用于一条语句的完毕标识。但是,Python倾向于使用换行符作为每条语句的...

    python开发总结

    ### Python开发总结知识点 #### 一、推荐书籍与资源 1. **《Python参考手册》** - **主要内容**:本书全面介绍了Python的各种标准模块及其特性。对于希望深入了解Python库和特性的开发者来说,是一本不可或缺的...

    python学习总结

    这篇博文"python学习总结"可能是作者对于自己学习Python过程中的经验分享,可能涵盖了基础语法、数据结构、函数、模块化编程、面向对象编程、错误与异常处理、文件操作以及常用的第三方库和工具的使用。下面,我们将...

    软通python机试考题总结.docx

    软通 Python 机试考题总结 本文总结了软通动力的 Python 机考题目,涵盖了 Python 语法基础、编程基础等方面的知识点。这些知识点都是程序员容易忽略的基础知识,但它们对程序员的编程基础和项目经验都是非常重要的...

    Python总结_python总结_源码

    异常处理在Python中通过try-except-finally语句实现,可以捕获并处理程序运行时可能出现的错误。Python还支持模块化编程,通过import语句可以导入并使用其他文件中的函数和类,提高代码的复用性和可维护性。 面向...

    python的配置总结

    ### Python的配置总结 #### 一、Python多版本共存配置 在实际工作中,我们可能会遇到需要同时使用Python 2.x和Python 3.x的情况。为了确保不同项目的兼容性,通常需要在计算机上同时安装多个版本的Python。下面...

    Python编程笔记 Python开发知识总结整理 Python核心笔记 共51页.pdf

    Python编程笔记是对Python开发知识的全面总结和整理,旨在帮助读者深入理解和掌握这门流行的高级编程语言。笔记分为两大部分,第一部分是Python的核心概念,第二部分涉及更高级的主题。 在前言中,作者可能介绍了...

    总结python知识点大全.zip

    Python通过try/except/finally语句进行异常处理,能有效捕获并处理运行时错误。 8. **文件操作** 文件I/O是任何编程语言的基础,Python提供了简单的方法来打开、读取、写入和关闭文件,以及处理文本和二进制数据...

    Python学习总结.zip

    异常处理是Python中处理错误和异常的关键,使用try/except/finally结构来捕获和处理异常。Python还提供了丰富的内置函数,如len()、range()、zip()、map()、filter()等,以及高级特性如列表推导式、生成器表达式、上...

    python爬虫总结

    python爬取网络资源整理,总计了一些常见用法及错误方式解析

    Python知识点总结.doc

    Python是一种高级编程语言,...这不仅涵盖了数据的存储和处理,还包括了控制流程(如条件语句和循环)、错误处理、模块导入等更复杂的话题。通过不断地实践和应用,可以逐步精通Python编程,构建出功能丰富的应用程序。

    python异常总结

    SystemError是在Python解释器内部出现错误时抛出的,比如内部一致性检查失败。 SystemExit异常通常是由sys.exit()函数引发的,它允许程序以指定的状态退出。 TypeError异常发生在操作或函数被应用于不合适的对象...

    Python爬虫总结教学提纲.docx

    ### Python爬虫总结教学知识点详解 #### 一、Python爬虫概述 Python作为一种高级编程语言,因其简洁易读的语法特性、丰富的第三方库资源及强大的社区支持,成为了编写网络爬虫程序的首选语言之一。本教学提纲旨在...

    python总结.rar

    在这个“python总结.rar”的压缩包中,我们很可能会找到关于Python语言的各种学习资料,包括基础语法、数据结构、函数、类与对象、模块和包、错误与异常处理、文件操作以及一些进阶主题,如面向对象编程、装饰器、...

    Python语法总结(完整版).zip

    10. **异常处理**:Python使用try-except语句来捕获和处理运行时错误,这有助于编写健壮的代码,确保程序在遇到错误时能优雅地退出或恢复。 以上就是"Python语法总结(完整版)"所涵盖的主要内容,无论你是初学者还是...

Global site tag (gtag.js) - Google Analytics