作为初学才,学起python,是挺快,但是也不免常常出些小错。在访问sqlite3的时候,我写了下边的测试代码。
文件test.py是utf-8编码的,OK,结果没问题。
#!/usr/bin/envpython
#coding=utf-8
importsqlite3
#con=sqlite3.connect(r"sqlite.db")
con=sqlite3.connect(r"e: estsqlite3.db")
#con.text_factory=str
cur=con.cursor()
#cur.execute("insertintobasvslvoy(vslcode,voyage,vslename)values(?,?,?)",(u'tt',u'tt',u'tt'))
cur.execute("insertintot1values(?,?)",(10,u'中文测试gbk10'))
con.commit()
cur.execute(u"select*fromt1wherecol2like'中%'")
forrowincur.fetchall():
printrow[0],row[1].encode('gbk')
con.close()
结果如下:
Processstarted>>>
10中文测试gbk10
10中文测试gbk10
5中
10中文测试gbk10
10中文测试gbk10
10中文测试gbk10
10中文测试gbk10
10中文测试gbk10
10中文测试gbk10
10中文测试gbk10
10中文测试gbk10<<<Processfinished.
可是,当我把文件编码调整成ansi格式的时候,上边程序没办法跑。
结果将文件内容改成下边的样子:
#!/usr/bin/envpython
#coding=utf-8
importsqlite3
#con=sqlite3.connect(r"sqlite.db")
con=sqlite3.connect(r"e: estsqlite3.db")
#con.text_factory=str
cur=con.cursor()
#cur.execute("insertintobasvslvoy(vslcode,voyage,vslename)values(?,?,?)",(u'tt',u'tt',u'tt'))
cur.execute("insertintot1values(?,?)",(10,'中文测试gbk10'.decode('gbk')))
con.commit()
cur.execute("select*fromt1wherecol2like'"+'中'.decode('gbk')+"%'")
forrowincur.fetchall():
printrow[0],row[1].encode('gbk')
con.close()
这样,出现的结果跟上边一样。
问题的关键就是#coding=utf-8,同时文件编码也要是utf-8,才能让结果保持一致。
看看下边的简单例子就知道:
>>>a='中文'
>>>b=u'中文'
>>>a
'ÖÐÎÄ'
>>>b
u'中文'
>>>a.decode('gbk')
u'中文'
>>>b==a.decode('gbk')
True
如果将上边的例子放到一个.py文件当中,分别采用utf-8编码和ansi编码('cp936'),结果可能就是分别为True和False。
<script type="text/javascript"><!--
google_ad_client = "ca-pub-7104628658411459";
/* wide1 */
google_ad_slot = "8564482570";
google_ad_width = 728;
google_ad_height = 90;
//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
分享到:
相关推荐
3. 正则表达式:在Python中,`re`模块用于处理字符串匹配和查找,常用于从网页文本中提取特定模式的数据。 4. 数据存储:学会将抓取的数据存储到文件(如CSV、JSON)、数据库(如SQLite、MySQL)或其他格式,如...
在Python中使用SQLite3,开发者需要熟悉SQL语句的编写,以及如何通过Python代码来构建和执行这些语句。 ### 数据库基础概念 数据库本身是存储数据的仓库,数据在数据库中的组织形式多种多样,但逻辑结构较为简单,...
在Python中使用SQLite3数据库处理中文数据时,可能会遇到编码问题。SQLite3是Python标准库中的一个模块,它提供了一个轻量级的、自包含的、无服务器的SQL数据库引擎,方便在各种应用中存储数据。然而,由于中文字符...
下面将详细介绍sqlite3模块的使用方法以及相关的知识点。 1. 安装与导入: Python的sqlite3模块通常在标准安装中就已经包含了,无需额外安装。在Python环境中,可以直接通过`import sqlite3`来引入这个模块。 2. ...
根据提供的文件内容,这里介绍的是Python编程语言中使用sqlite模块进行...以上知识点涵盖了Python中使用sqlite模块进行数据库操作的基本方法和常见操作,为开发者提供了利用Python对SQLite数据库进行操作的理论基础。
本文将详细介绍如何使用Python读取TXT文件中的数据,并将其存储到SQLite3数据库中,同时也会涉及数据库的基本操作,如创建表、插入数据以及查询数据。 首先,我们需要导入`sqlite3`模块,这是Python标准库的一部分...
然而,MySQL和SQLite的SQL语法存在一些差异,因此直接将SQLite的`.dump`文件应用于MySQL可能会遇到问题。这就是`sqlite_sql_parser`脚本发挥作用的地方。 `sqlite_sql_parser`是一个Python项目,它的主要功能是解析...
在C#中封装SQLite3访问类库,可以简化与SQLite数据库的交互,使得开发者能更高效地处理数据存储和检索。 SQLite3在C#中的封装通常涉及到以下关键知识点: 1. **NuGet包安装**:在C#项目中,我们通常会使用NuGet包...
这份“传sqliteAPI文档”应该详细阐述了这些功能的使用方法、示例代码以及可能遇到的问题和解决方案,对于初学者和有经验的开发者都是一份宝贵的资源。通过深入学习和实践,开发者可以轻松地在各种项目中集成SQLite...
### Python模块之SQLite数据库知识点详解 ...通过以上介绍,我们不仅了解了SQLite的基本概念和使用方法,还掌握了在Python中使用SQLite进行数据库操作的具体步骤。这对于实际开发工作来说是非常有用的技能。
Python SQLite 是一个轻量级的数据库引擎,常用于在Python应用...通过这个小例子,你可以学习到如何创建、插入、查询和管理SQLite数据库中的数据,这对于任何使用Python处理数据的开发者来说都是一个非常实用的技能。
在SQLite-Python环境中,处理中文字段可能会遇到编码问题,因为SQLite数据库默认是以UTF-8编码存储数据,但在Python中操作时如果不进行适当的设置,可能会出现乱码或编码错误。本篇文章将详细介绍如何在SQLite-...
该代码是用Python实现的一个简单的图书管理系统,使用SQLite作为数据库。系统允许用户通过输入书名来查找书籍的ID(book_id),然后借用该书籍。在借用过程中,系统还会验证用户的账号是否存在。以下是对代码中涉及...
除了正则表达式,还可以使用Python的字符串方法和内建的`unicodedata`库来识别中文字符。例如,我们可以检查每个字符的类别,如果类别为"Letter, Han",则表明是中文字符: ```python import unicodedata def ...
在SQL查询中,特殊字符有时候会导致解析错误或者不期望的结果,特别是在使用LIKE、ILIKE或通配符操作时。SQLite数据库作为一个轻量级的关系型数据库管理系统,也不例外。本篇文章主要探讨的是如何在SQLite中对特殊...
本项目标题"xlrd_pythonsqlite_pythonexcel_"揭示了使用Python的两个关键库:`xlrd`用于读取Excel文件,`sqlite3`用于与SQLite数据库交互。以下是对这些知识点的详细说明: 1. **xlrd库**: - `xlrd`是Python的一...
5. **异常处理**:学习如何使用`try/except`块来处理程序运行时可能遇到的错误,以增强代码的健壮性。 6. **文件操作**:学会读写文件,理解文件对象,以及处理文本和二进制数据。 7. **函数式编程**:了解Python...
11. **API使用**:对于编程人员,会详细说明如何在C、Python、Java、JavaScript等不同编程语言中使用SQLite的API。 12. **错误处理与调试**:介绍错误代码和消息,以及如何调试SQLite相关的问题。 13. **案例分析*...
### Python中的SQLite3使用详解 #### 一、简介与安装 SQLite是一款轻量级的数据库管理系统,被广泛应用于各种场景,特别是在嵌入式系统中。它以文件的形式存储数据,无需独立的服务进程,并且提供了丰富的SQL功能...