玩Python遇到的问题一二三及解决办法

文章目录

  • 问题一:python 2.7版本解决TypeError: 'encoding' is an invalid keyword argument for this function。
  • 问题二:python读取文件时提示"UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 205: illegal multibyte sequence"
    • 情景一:
    • 情景二:
  • 问题三:python执行SQL报错:not enough arguments for format string
  • 问题四:输出的信息为转义码
  • 问题五:使用list的clear()方法时的注意点
  • 问题六:Python下调用json.dumps中文显示问题解决办法
  • 问题七:报错:pymysql.err.OperationalError: (1040, 'Too many connections')
  • 问题八:ValueError: invalid literal for int() with base 10: “”
  • 问题九:解决python中TypeError: not enough arguments for format string
  • 问题十:消除python中控制台输出的警告信息
    • 问题十一:报错:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range(128)

最近要频繁的玩Python,在这里总结下遇到的一些问题,持续更新中。

问题一:python 2.7版本解决TypeError: ‘encoding’ is an invalid keyword argument for this function。

用Python2.7来打开一些文件的时候,经常出现以上的所表示的问题,如

data_file = open("F:\\MyPro\\data.yaml", "r", encoding='utf-8')

运行的时候报错:TypeError: ‘encoding’ is an invalid keyword argument for this function。但在Py3中运行却不会遇到这样的问题
解决办法:网上查找一番后,改成如下这样就可以搞定

import io
data_file = io.open("F:\\MyPro\\data.yaml", "r", encoding='utf-8')

至于原因根据报错的信息看也许跟Py2和Py3的API规定不同有关吧。

问题二:python读取文件时提示"UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x80 in position 205: illegal multibyte sequence"

情景一:

同样是读取文件时,碰到的编码问题。
解决办法:

FILE_OBJECT= open('order.log','r', encoding='UTF-8')

只需要加入对应的encoding参数就OK了,对于Python中的编码问题,有时候也很麻烦。不过这类问题一般百度下就能找到对应的解决办法。

情景二:

突然在用pandas读取别人的.csv数据的时候出现了一种奇怪现象:用Python2的解释器时可以读取,用python3的解释器却无法读取。报上面的错误,后来在方法中添加encoding参数依旧不可行,之后查阅资料才知道,原来是.csv文件本事的格式问题,首先确保你的.csv是utf8编码(用notepad打开.csv文件查看文件编码格式),其次要确保你的.csv在保存的时候也是.csv utf-8格式(可以再重新打开.csv文件再保存为.csv utf-8格式),如下图所示:
在这里插入图片描述

问题三:python执行SQL报错:not enough arguments for format string

在Python中执行SQL的查询语句的时候爆出这样的错误,如
sql='select * from Teacher where Tname like \'%%'+ keyword +'%%\''。后来才知道出现这类问题,主要是字符串中包含了%号,python 认为它是转移符,而实际我们需要的就是%, 这个时候,可以使用%%来表示%,也就是说sql字符串中的百分号全都要用%%来表示。

问题四:输出的信息为转义码

# ((u'01', u'\u5f20\u4e09'), (u'04', u'\u5f20\u4e09\u4e30')) # (u'01', u'\u5f20\u4e09')

这种情况也只有在Py2中才会出现,Py3中是不会出现的。
解决办法:将输出的转义码通过以下的eval方法转化为对应的中文。

 print(eval("u"+"\'"+exmple[1]+"\'"))

问题五:使用list的clear()方法时的注意点

最近在写一段如下代码时:

for line in lines:# print(line)for x in jieba.lcut(line):# print(x)if x not in stopwords:text1.append(x)text2=text1corpora_documents.append(text2)# print(corpora_documents)text1.clear()

这里由于类型转化问题不能采用简便的方法来直接分词并剔除停词,所以只能用这种方式来实现相同的功能,但是在实现的过程中,原本期望返回的corpora_documents是下图所示的效果:
这里写图片描述
但是却得到了一组空的List。这让博主很是郁闷(毕竟博主之前是写Java的,面相对象的思想“根深蒂固”,以为声明出来一个新的text2对象,就会开辟一块新的内存空间来存储text2的内容,这样text1和text2也就是值传递了而非引用传递,可是这是java的内存加载机制。。。),不过后来随着博主无意间将最后一行代码改为:

text1=[]

得到了自己想要的结果,之后再分析原因的时候,发现博主没有切换到Python的内存管理机制。其实整个过程对于Python来说内存管理如下:

for line in lines:# print(line)for x in jieba.lcut(line):# print(x)if x not in stopwords:text1.append(x)text2=text1#相当于将声明的两个对象的指针指向同一块内存空间即text1所在的内存空间corpora_documents.append(text2)#Python采用的应该是延迟加载,也就是说这里corpora_documents只是将指针指向了text2的内存地址,并没有直接就将text2里面的内容加载进来。# print(corpora_documents)text1.clear()#clear()就相当于擦除了text1中的内容,即text2指向了一个空的内容,由于Python延迟加载的特性也就造成了后面打印出来的corpora_documents的内容为空print(corpora_documents)

所以在使用clear()的时候一定要注意对象之间的关系,一不留神就会造成很大的损失。感觉这个问题好像在那本书中有提到,还得复习下基础知识,很多问题只有不断的Coding才能碰到,还是实践太少,仍需继续努力。

问题六:Python下调用json.dumps中文显示问题解决办法

最近在开发某个功能的时候,需要将前台的信息返回到后天处理后,以json字符串的形式返回,但是返回的内容显示在网页中确实ASCII码值,下面是这个问题的解决办法:
配置下dumps方法中的ensure_ascii这个属性!

data={"url":"http:www.dianwe.com","content":"采集Test","CreateTime":"2014-07-08 23:29"}  
bizResult= json.dumps(data, ensure_ascii=False)   
print(bizResult)  

这样便不会转为Ascii 编号了!

问题七:报错:pymysql.err.OperationalError: (1040, ‘Too many connections’)

mysql数据库 Too many connections
出现这种错误明显就是 mysql_connect 之后忘记 mysql_close;我的情况是实现了自动更新本地数据库在测试的时候每次更新后又忘记关闭对应的connect,当大量的connect之后,就会出现Too many connections的错误,mysql默认的连接为100个。只需在代码中添加对应的connect.close()方法即可。

问题八:ValueError: invalid literal for int() with base 10: “”

最近在写代码的时候,突然爆出这样错误,根据字面意思是类型转化的问题,但是仔细检查了代码,发现类型转化没有问题。无奈只能去求助度娘,很多博客也说是类型转换的问题。以下是某博客的一个实验:

>>> int('')
Traceback (most recent call last):File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: ''
>>>>>> int("x")
Traceback (most recent call last):File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'x'

从中可以看出这类错误就是字符无法转换为int型。但是仍找不到对应的错误的位置在哪里,刚好看看到一个建议:“为了避免类似错误,以后进行int类型转换时,注意检查,或者直接加try 捕获下”

 # try:#     print(int(re.sub("\D", "", x)))# except ValueError:#     print("-"*40)#     print("异常值"+x)

一查竟让多出了一些nan值:
在这里插入图片描述
但是后来去和数据做比对的时候,实在是也没有发现有什么nan值,这就很奇怪了,所以为了能让程序跑下去,这里就先省去了这个int的强制变换。

问题九:解决python中TypeError: not enough arguments for format string

出现这类问题,主要是字符串中包含了%号,python 认为它是转移符,而实际我们需要的就是%, 这个时候,可以使用%%来表示

问题十:消除python中控制台输出的警告信息

程序运行中经常会碰到python控制台显示警告提示SettingWithCopyWarning的信息,一般来说没什么大事,但是当这些信息多了之后就会干扰你查看一些关键信息的效率,那么如何让控制台不提示这类告警呢?很简单只需在代码中添加以下两行代码即可:

import warnings
warnings.filterwarnings("ignore")

问题十一:报错:UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe5 in position 0: ordinal not in range(128)

使用python2.x的时候,即使在代码头部声明了encoding=“utf-8”,但是程序执行的时候仍会报这个错误,这时候只需要在头部添加如下代码即可

import sys
reload(sys)
sys.setdefaultencoding('utf8')

ps:python3.x一般就不会出现这种情况!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/456582.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

聊天机器人的分类及综述

文章目录[toc] 目录前言&#xff1a;1、技术方向2、chatbot的知识框架3、应用的分类4、chatbot的几个challenges5、工业应用综述总结&#xff1a;目录 前言&#xff1a; 最近由于工作需要&#xff0c;要开发一款智能客服&#xff0c;目前正在搞业务咨询模块的功能&#xff0c…

【python】数据结构和算法 + 浅谈单链表与双链表的区别

有这么一句话说“程序数据结构算法”&#xff0c;也有人说“如果把编程比作做菜&#xff0c;那么数据结构就好比食材&#xff08;菜&#xff09;&#xff0c;算法就好比厨艺&#xff08;做菜的技巧&#xff09;”。 当然这是笼统的说法&#xff0c;不过也稍微懂得了数据结构和…

webpack使用优化(基本篇)

转自&#xff1a;https://github.com/lcxfs1991/blog/issues/2 前言 本文不是webpack入门文章&#xff0c;如果对webpack还不了解&#xff0c;请前往题叶的Webpack入门&#xff0c;或者阮老师的Webpack-Demos。 为什么要使用Webpack 与react一类模块化开发的框架搭配着用比较好…

word2vec中单词向词向量的转换过程详解

目录前言&#xff1a;1、Word2Vec两种模型的大致印象2、CBOW模型流程举例3、CBOW模型流程举例总结&#xff1a; 目录 前言&#xff1a; 针对word2vec是如何得到词向量的&#xff1f;这篇文章肯定能解决你的疑惑。该篇文章主要参考知乎某大神的回答&#xff0c;个人在此基础上…

JavaScript学习笔记(四)——jQuery插件开发与发布

jQuery插件就是以jQuery库为基础衍生出来的库&#xff0c;jQuery插件的好处是封装功能&#xff0c;提高了代码的复用性&#xff0c;加快了开发速度&#xff0c;现在网络上开源的jQuery插件非常多&#xff0c;随着版本的不停迭代越来越稳定好用&#xff0c;在jQuery官网有许多插…

《树莓派学习指南(基于Linux)》——1.4 将Raspbian烧录到SD卡

本节书摘来异步社区《树莓派学习指南&#xff08;基于Linux&#xff09;》一书中的第1章&#xff0c;第1.4节&#xff0c;作者&#xff1a;【英】Peter Membrey ,【澳】David Hows &#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 1.4 将Raspbian烧录到SD卡 …

python单向链表和双向链表的图示代码说明

图示说明&#xff1a; 单向链表&#xff1a; insert、 remove、 update、pop方法 class Node:def __init__(self, data):self.data dataself.next Nonedef __str__(self):return str(self.data)# 通过单链表构建一个list的结构&#xff1a; 添加 删除 插入 查找 获取长…

AIML知识库数据匹配原理解析

目录&#xff1a;前言&#xff1a;1、AIML系统工作流程2、AIML的核心推理机制3、推理举例4、匹配规则及实践中遇到的一些问题的解释总结&#xff1a; 目录&#xff1a; 前言&#xff1a; 参考&#xff1a;《Alice机理分析与应用研究》 关于AIML库这里就不介绍了&#xff0c…

【Python】模拟面试技术面试题答

一、 python语法 1. 请说一下你对迭代器和生成器的区别&#xff1f; 2. 什么是线程安全&#xff1f; 3. 你所遵循的代码规范是什么&#xff1f;请举例说明其要求&#xff1f; 4. Python中怎么简单的实现列表去重&#xff1f; 5. python 中 yield 的用法…

Win7 U盘安装Ubuntu16.04 双系统

Win7系统下安装Ubuntu系统&#xff0c;主要分为三步&#xff1a; 第1步&#xff1a;制作U盘启动盘 第2步&#xff1a;安装Ubuntu系统 第3步&#xff1a;创建启动系统引导 第1步&#xff1a;制作U盘启动盘 1.下载Ubuntu16.04安装镜像&#xff0c;官网地址&#xff1a;http://www…

Word2VecDoc2Vec总结

转自&#xff1a;http://www.cnblogs.com/maybe2030/p/5427148.html 目录&#xff1a;1、词向量2、Distributed representation词向量表示3、word2vec算法思想4、doc2vec算法思想5、Doc2Vec主要参数详解总结&#xff1a; 目录&#xff1a; 1、词向量 自然语言理解的问题要转…

《游戏视频主播手册》——2.2 哪些人适合做游戏主播

本节书摘来自异步社区《游戏视频主播手册》一书中的第2章&#xff0c;第2.2节&#xff0c;作者 王岩&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.2 哪些人适合做游戏主播 据不完全统计&#xff0c;目前国内有超过26000名活跃的游戏主播。所谓“活跃的…

干货分享!DevExpressv16.2最新版演示示例等你来收!(上)

2019独角兽企业重金招聘Python工程师标准>>> 为解决大家找资源难的问题&#xff0c;EVGET联合DevExpress控件中文网盘点热门的DevExpress资讯、Demo示例、版本升级及下载&#xff0c;以及各种教程推荐等。更多下载及资讯也可以在DevExpress控件中文网中找到&#xf…

一文看懂哈夫曼树与哈夫曼编码

转自&#xff1a;http://www.cnblogs.com/Jezze/archive/2011/12/23/2299884.html 在一般的数据结构的书中&#xff0c;树的那章后面&#xff0c;著者一般都会介绍一下哈夫曼(HUFFMAN)树和哈夫曼编码。哈夫曼编码是哈夫曼树的一个应用。哈夫曼编码应用广泛&#xff0c;如JPEG中…

解决:未能将管道连接到虚拟机: 所有的管道范例都在使用中。

虚拟机无端出现: VMware Workstation 无法连接到虚拟机。请确保您有权限运行该程序、访问改程序使用的所有目录以及访问所有临时文件目录。未能将管道连接到虚拟机: 所有的管道范例都在使用中。 原因&#xff1a;Ubuntu开机慢到开不开&#xff0c;我就在任务管理器强制结束了…

CCF推荐各种国际学术会议和期刊目录

这是中国计算机学会推荐国际学术会议和期刊目录2015年版本的内容&#xff0c; 主要罗列了国际上计算机相关的各个方向的顶级学术会议和期刊目录&#xff08;包含A、B、C三个等级&#xff09;。 包含的方向有&#xff1a; 计算机体系结构/并行与分布计算/存储系统计算机网络网络…

第四次作业类测试代码+036+吴心怡

一、类图 二、代码 package application; public class Commission { /* * hp&#xff1a;耳机 80元 mpc&#xff1a;手机壳 10元 cpsp&#xff1a;手机贴膜 8元 */ public float calculate(String line) { int hp 0, mpc 0, cpsp 0; String[] input null; float money 0;…

LSI/LSA算法原理与实践Demo

目录&#xff1a;1、使用场景2、优缺点3、算法原理3.1、传统向量空间模型的缺陷3.2、Latent Semantic Analysis (Latent Semantic Indexing)3.3、算法实例 4、文档相似度的计算5、对应的实践Demo 目录&#xff1a; 1、使用场景 文本挖掘中&#xff0c;主题模型。聚类算法关注…

Linux学习134 Unit 8

Unit8 ldap网络帐号1.ldap是什么ldap目录服务认证&#xff0c;和windows活动目录类似&#xff0c;就是记录数据的一种方式2.ldap客户端所须软件yum sssd krb5-workstation -y3.如何开启ldap用户认证authconfig-tui┌────────────────┤ Authentication Configu…

FastText原理总结

目录&#xff1a;1、应用场景2、优缺点3、FastText的原理4、FastText词向量与word2vec对比 目录&#xff1a; 1、应用场景 fastText是一种Facebook AI Research在16年开源的一个文本分类器。 其特点就是fast。相对于其它文本分类模型&#xff0c;如SVM&#xff0c;Logistic …