❶ python3连接MSSQL数据库 中文乱码怎么解决
以前用php连mssqy时也经常出现中文乱码(中文变问号)的问题,那时就明白是编码没设置好导航,现在的Python连mssql数据库也同样出现这问题,问题一样,解决的办法当然也会相似,现在我们来看看解决方法。
python一直对中文支持的不好,最近老遇到编码问题,而且几乎没有通用的方案来解决这个问题,但是对常见的方法都试过之后,发现还是可以解决的,下面总结了常用的支持中文的编码问题(这些方法中可能其中一个就能解决问题,也可能是多个组合)。
(1)、首先,要保证文件的开头要加上编码设置来说明文件的编码
代码如下
复制代码
#encoding=utf-8
(2)、然后,在连接数据的连接参数里加上字符集说明查询出的结果的编码,这个不加的后果可能是查询出的汉字字符都是问号
代码如下
复制代码
conn=pymssql.connect(server='.',user='', password='',database='MyTest',charset='utf8')
(3)、设置python系统的默认编码(对于文件来说,这招几乎屡试不爽,呵呵~~)
代码如下
复制代码
import sys
reload(sys)
sys.setdefaultencoding('utf8')
注意:上述编码是“utf8”,而不是“utf-8”,我也没弄明白,大部分情况下,这个无所谓的,但是这里我试了必须要是“utf8”
一个简单的完整的python连接mssqlserver的例子如下(得安装pymssql包):
代码如下
复制代码
#encoding:utf8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import pymssql
try:
conn=pymssql.connect(server='.',user='', password='',database='MyTest',charset='utf8')
sql="select * from UserInfo"
cur=conn.cursor()
cur.execute(sql)
data=cur.fetchall()
conn.close()
print data
except Exception,e:
print e
运行结果如下:
代码如下
复制代码
[(u'20093501', u'xb9xf9xbexb8', u'u7537 ', 35, u'xb4xf3xcfxc0'),
(u'20093502', u'xbbxc6xc8xd8', u'u5973 ', 34, u'xc3xc0xc5xae'),
(u'20093503', u'xc1xeexbaxfcxb3xe5', u'u7537 ', 25, u'2Bxc7xe0xc4xea'),
(u'20093504', u'xc8xcexd3xafxd3xaf', u'u5973 ', 24, u'xc6xafxc1xc1')]
[Finished in 0.2s]
虽然摆脱了问号和乱码的困扰,但这仍不是我们想要的结果,但这个确实是正确的,因为结果是utf8编码。这个现象确实诡异,请教了许多高手,得知,最好的结果就是逐个字段查询,才能显示中文,整个查询的话,会以utf8的格式显示出来。
上述代码中第14行data是整个查询的结果,如果指定某个具体的字段,如print data[0][2](表示取查询结果的第一行第三列的字段的值),则会输出中文。
其实不仅仅是mssqlserver数据库,mysql(需下载MySQLdb包)、sqllite(python自带的文件数据库)、mongodb(需下载PyMongo包)等或者是普通文本文件也是类似的解决方案。
❷ python怎样将数据存入mysql数据库
下载mysql.connector库
然后把爬虫爬到的数据通过mysql里面的insert语句查到数据库,当然也可以建表,一般我没用python建表 是先建好再写数据的
import mysql.connector
conn = mysql.connector.connect(
user='root',
password='root',
host='127.0.0.1',
port='3306',
database='test_demo'
)
cursor = conn.cursor()
cursor.execute("INSERT INTO test_user(`uuid`,`user_name`,`user_level`) VALUES (%s,%s,%s)",[id, user_name, user_level])
cursor.execute("INSERT INTO tieba_user_detail(`user_name`,`user_exp`,`user_sex`,`tieba_age`,`tieba_note`,`user_favorites`,`user_fans`) VALUES (%s,%s,%s,%s,%s,%s,%s)",[user_name,user_exp,user_sex, tieba_age,tieba_note, user_favorites, user_fans])
print('************** %s %s 数据保存成功 **************'%(user_rank,user_name))
conn.commit()
cursor.close()
❸ python向数据库pymssql插入数据,id自动增长怎么办
数据库创建表时,设置主键为自增,插入式就不能在设置id了,有数据库保证,和编程语言无关
❹ python中pymssql如何向sql server插入数据 插入的值可以用变量替换
conn = pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset="utf8")
cur = self.conn.cursor()
insertSql = "insert into WeiBo([UserId],[WeiBoContent],[PublishDate]) values(%s,'%s‘,'%s')" %(1,2,3).encode("utf8")
cur.execute(insertSql)
❺ python pymysql 怎么插入数据
importMySQLdb
conn=MySQLdb.connect(host='localhost',
user='db_user',
passwd='db_passwd',
db='db_name',
port=3306)
cur=conn.cursor()
cur.execute('INSERTINTO`uid`(`id`,`key`)VALUES(%s,%s)'
,(1234,"45678")
)
conn.commit()
conn.close()
❻ python 把list元素插入数据库
有错最好贴一下报错内容
看一下story[0]的类型,print type(story[0])
%s,代表是字符串,如果不是str类型的话,转换一下.
sql = "INSERT INTO qsbk(pagenum) VALUES ('%s')" %(str(story[0]))
❼ python 在MSSQL中insert into 的问题
这样试试:
resultcur.execute("insert into dashboard values ('%s')" %(x))
❽ python 读取本地数据然后插入到另一个数据库中
classBuffer(object):
MAXSIZE=8192
def__init__(self,conn,sql):
self.conn=conn
self.sql=sql
self.buffer=[]
defappend(self,data):
self.buffer.append(data)
iflen(self.buffer)>self.MAXSIZE:
self.flush()
defflush(self):
data,self.buffer=self.buffer,[]
curr=self.conn.cursor()
curr.executemany(self.sql,data)
self.conn.commit()
#_srcandconn_store...
buff=Buffer(conn_store,"insertintosybase_uservalues(%s,%s)")
sql_query="selecta.id,a.namefromuser_infoawherea.id=%s"
curr_src=conn_src.cursor()
curr_src.execute(sql_query,'0001')
forrowincurr_src:
buff.append(row)
buff.flush()
❾ python中向mysql数据库插入变量
从错误提示来看是 str 和 object 无法拼接,这是表象错误,实际上,你根本用不着拼接 str 和 object ,你这句 insert 看起来是有问题的,写的很乱。首先你要理清 censor 这个表有几个字段,是什么类型,然后再在这里构造 insert ,这里的双引号是给 python 解析的,双引号中的 values 后的各值还要加单引号,那是给 mysql 看的,要用清醒的头脑认识到这点你才能拼接好。
改成这样试试,注意加了很多单引号:
sql="insert censor vaules('"+data[0]+"','"+list[i]+"','开机的流程')"
❿ Python连接MSSQL
用pyodbc非常好用,安装即可用。而且可以连接其他数据库,像SQLServer,postgre,oracle,db2等等。