sqlite3与python

1.python sqlite3 怎么处理

python编码如果把中文数据存储至sqlite数据库某一字段中,再通过查询语句取出并进行相关的字符串操作时,经常会出现错误提示,类似于UnicodeDecodeError,提示某一类型编码不能转换。

出现这个问题的原因是因为python默认使用unicode处理sqlite3的TEXT类型(varchar类型也是如此,因为在sqlite中varchar其实就是TEXT)。python把中文存入数据库时使用了类似于GBK这样的编码,取出时会尝试把TEXT类型数据转换成unicode,从而出现错误。

由此导致的另一个不容易发现的错误是存储在数据库中的中文进行了base64之类的编码,在python中取出时不会存在错误,但是再进行base64解码,并与sqlite3中取出的其它text字段进行字符串拼接等处理,就出现编码转换错误,很难发现问题原因,可以把其它text字段进行如'aaa'.encode('gbk')编码成GBK码解决,但不提倡这种方法,更好方法如下:

解决方法是python连接sqlite数据库后进行如下设置:

conn = sqlite3.connection(“……”)

conn.text_factory = str

另外为了python代码中硬编码的中文字符串不出现问题,除了在源码开始添加

# -*- coding:utf-8 -*-

还要设置python源码的编码为utf-8

import sys

reload(sys)

sys.setdefaultencode('utf8')

2.Python和SQLite问题,怎么解决

python编码如果把中文数据存储至sqlite数据库某一字段中,再通过查询语句取出并进行相关的字符串操作时,经常会出现错误提示,类似于UnicodeDecodeError,提示某一类型编码不能转换。

出现这个问题的原因是因为python默认使用unicode处理sqlite3的TEXT类型(varchar类型也是如此,因为在sqlite中varchar其实就是TEXT)。python把中文存入数据库时使用了类似于GBK这样的编码,取出时会尝试把TEXT类型数据转换成unicode,从而出现错误。

由此导致的另一个不容易发现的错误是存储在数据库中的中文进行了base64之类的编码,在python中取出时不会存在错误,但是再进行base64解码,并与sqlite3中取出的其它text字段进行字符串拼接等处理,就出现编码转换错误,很难发现问题原因,可以把其它text字段进行如'aaa'.encode('gbk')编码成GBK码解决,但不提倡这种方法,更好方法如下:解决方法是python连接sqlite数据库后进行如下设置:conn = sqlite3.connection(“……”)conn.text_factory = str另外为了python代码中硬编码的中文字符串不出现问题,除了在源码开始添加# -*- coding:utf-8 -*- 还要设置python源码的编码为utf-8import sysreload(sys)sys.setdefaultencode('utf8')。

3.Python和SQLite问题,怎么解决

python编码如果把中文数据存储至sqlite数据库某一字段中,再通过查询语句取出并进行相关的字符串操作时,经常会出现错误提示,类似于UnicodeDecodeError,提示某一类型编码不能转换。

出现这个问题的原因是因为python默认使用unicode处理sqlite3的TEXT类型(varchar类型也是如此,因为在sqlite中varchar其实就是TEXT)。python把中文存入数据库时使用了类似于GBK这样的编码,取出时会尝试把TEXT类型数据转换成unicode,从而出现错误。

由此导致的另一个不容易发现的错误是存储在数据库中的中文进行了base64之类的编码,在python中取出时不会存在错误,但是再进行base64解码,并与sqlite3中取出的其它text字段进行字符串拼接等处理,就出现编码转换错误,很难发现问题原因,可以把其它text字段进行如'aaa'.encode('gbk')编码成GBK码解决,但不提倡这种方法,更好方法如下:

解决方法是python连接sqlite数据库后进行如下设置:

conn = sqlite3.connection(“……”)

conn.text_factory = str

另外为了python代码中硬编码的中文字符串不出现问题,除了在源码开始添加

# -*- coding:utf-8 -*-

还要设置python源码的编码为utf-8

import sys

reload(sys)

sys.setdefaultencode('utf8')

sqlite3与python

转载请注明出处编程代码网 » sqlite3与python

资讯

pythonif判断为空

阅读(21)

本文主要为您介绍pythonif判断为空,内容包括python判断字符串是否为空用什么方法,python判断字符串是否为空用什么方法?,python怎么判断一行为空行。Groovy Tip 3 如何在if条件语句中判断对象为空在Java语言编程中,对对象的非空判断是一个永

资讯

python在字符串拼接

阅读(18)

本文主要为您介绍python在字符串拼接,内容包括python中字符串拼接,python用字符串拼接一条语句,然后怎么执行,python字符串拼接问题。a=open(a.txt,r)lines= a.readlines()print lines[0].strip()+:+lines[1]

资讯

python字符串数字

阅读(21)

本文主要为您介绍python字符串数字,内容包括python判断字符串是否为数字?,python判断字符串中大小写字母及数字个数,python一个字符串中有几个数字。判定是否为数字方法一:try: float(s) return True exceptValueError: pass try: imp

资讯

python在字符串拼接字符串

阅读(27)

本文主要为您介绍python在字符串拼接字符串,内容包括python中字符串拼接,python字符串拼接问题,python字符串连接。a=open(a.txt,r)lines= a.readlines()print lines[0].strip()+:+lines[1]

资讯

python倒序for

阅读(19)

本文主要为您介绍python倒序for,内容包括python正整数倒序输出,如何实现python的倒序遍历,如何实现python的倒序遍历。#1.字符串、列表、元组均可用此方法 (使用切片的方法) 不修改元素原有内容,将输出进行赋值#1.1 字符串s=nihao s1=s[:

资讯

python排序字典

阅读(18)

本文主要为您介绍python排序字典,内容包括python对字典排序,代码如下,python中的字典怎么排序,怎么按照添加的顺序显示,python中字典的排序。tag_sorted = sorted(tag_count.iteritems(),key = operator.itemgetter(

资讯

安装pythonformysql

阅读(14)

本文主要为您介绍安装pythonformysql,内容包括如何在virtualenv虚拟环境中安装mysqlpython,python怎样安装mysqldb模块,如何安装python的MySQLdb模块?。到官方下载MySQL for Python然后解压,打开README:里面有安装过程: $ tar xfz MySQL-pytho

资讯

pythonforvs

阅读(21)

本文主要为您介绍pythonforvs,内容包括Python中for语句的用法?,怎么用,关于的自动换行!。Python 中的 for 语句和 C 或 Pascal 中的略有不同。通常的循环可能会依据一个等差数值步进过程(如 Pascal),或

资讯

pytHononandroid

阅读(21)

本文主要为您介绍pytHononandroid,内容包括python开发的安卓app?,python可以进行android开发么,python能开发Android应用吗?。Android平台吸引众多Linux社区用户的原因是,Android基于广泛的开源,即使甲骨文公司对此作出了诉讼。在基于Android

资讯

pythonabif

阅读(20)

本文主要为您介绍pythonabif,内容包括在python中如何用表达式表示`abc'是否在'abcdef'中,怎样用python做一个两个数求最大公因数的程序?,python题目输入三个整数a,b,c,使用if语句找出最大数,并输出该最大。m=int(input(请输入第

资讯

终端python

阅读(20)

本文主要为您介绍终端python,内容包括python的终端是什么意思,linux终端运行python,如何在mac终端运行python文件。Linux终端中的操作均是使用命令行来进行的。因此,对于小白来说,熟记几个基本的命令行和使用方法能够较快的在Linux命令行环境

资讯

python中的号

阅读(25)

本文主要为您介绍python中的号,内容包括如何查看python的当前版本号,python中#号的意思是什么呀,python中的*号有几种意思啊。付费内容限时免费查看 回答 运算符的优先级顺序:分步阅读1算术运算符中的优先级顺序和数学运算里一直,先乘除后加

资讯

pythonifnan

阅读(21)

本文主要为您介绍pythonifnan,内容包括python中的ifin是什么意思,ifname=="main"是什么意思?,python中ifname=="main"如何使用。if条件语句后面需要跟随bool类型的数据,即True或者False。然而,如果不是bool类型的数据,可以将其转换成bool类型

资讯

loggingpython

阅读(18)

本文主要为您介绍loggingpython,内容包括loggingpython怎么用,python程序中logging怎么用,pythonlogging异常是怎么回事谁能告诉我该怎么解决。简单使用#!/usr/local/bin/python# -*- coding:utf-8 -*-import loggingloggi

资讯

pythonif判断为空

阅读(21)

本文主要为您介绍pythonif判断为空,内容包括python判断字符串是否为空用什么方法,python判断字符串是否为空用什么方法?,python怎么判断一行为空行。Groovy Tip 3 如何在if条件语句中判断对象为空在Java语言编程中,对对象的非空判断是一个永

资讯

python在字符串拼接

阅读(18)

本文主要为您介绍python在字符串拼接,内容包括python中字符串拼接,python用字符串拼接一条语句,然后怎么执行,python字符串拼接问题。a=open(a.txt,r)lines= a.readlines()print lines[0].strip()+:+lines[1]

资讯

python字符串数字

阅读(21)

本文主要为您介绍python字符串数字,内容包括python判断字符串是否为数字?,python判断字符串中大小写字母及数字个数,python一个字符串中有几个数字。判定是否为数字方法一:try: float(s) return True exceptValueError: pass try: imp

资讯

python在字符串拼接字符串

阅读(27)

本文主要为您介绍python在字符串拼接字符串,内容包括python中字符串拼接,python字符串拼接问题,python字符串连接。a=open(a.txt,r)lines= a.readlines()print lines[0].strip()+:+lines[1]

资讯

python倒序for

阅读(19)

本文主要为您介绍python倒序for,内容包括python正整数倒序输出,如何实现python的倒序遍历,如何实现python的倒序遍历。#1.字符串、列表、元组均可用此方法 (使用切片的方法) 不修改元素原有内容,将输出进行赋值#1.1 字符串s=nihao s1=s[:

资讯

python排序字典

阅读(18)

本文主要为您介绍python排序字典,内容包括python对字典排序,代码如下,python中的字典怎么排序,怎么按照添加的顺序显示,python中字典的排序。tag_sorted = sorted(tag_count.iteritems(),key = operator.itemgetter(

资讯

安装pythonformysql

阅读(14)

本文主要为您介绍安装pythonformysql,内容包括如何在virtualenv虚拟环境中安装mysqlpython,python怎样安装mysqldb模块,如何安装python的MySQLdb模块?。到官方下载MySQL for Python然后解压,打开README:里面有安装过程: $ tar xfz MySQL-pytho

资讯

python字典列表

阅读(21)

本文主要为您介绍python字典列表,内容包括python字典列表和列表字典,python列表内有字典怎么使用,python列表中的列表转换字典(listofstr)>dictof{tupleofstr:。Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等