導航:首頁 > 編程語言 > python數據插入mssql

python數據插入mssql

發布時間:2022-03-12 06:22:34

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等等。

閱讀全文

與python數據插入mssql相關的資料

熱點內容
優信二手車解壓後過戶 瀏覽:62
Windows常用c編譯器 瀏覽:778
關於改善國家網路安全的行政命令 瀏覽:833
安卓如何下載網易荒野pc服 瀏覽:654
javainetaddress 瀏覽:104
蘋果4s固件下載完了怎麼解壓 瀏覽:1003
命令zpa 瀏覽:286
python編譯器小程序 瀏覽:945
在app上看視頻怎麼光線調暗 瀏覽:540
可以中文解壓的解壓軟體 瀏覽:593
安卓卸載組件應用怎麼安裝 瀏覽:913
使用面向對象編程的方式 瀏覽:339
程序員項目經理的年終總結範文 瀏覽:929
內衣的加密設計用來幹嘛的 瀏覽:433
淮安數據加密 瀏覽:292
魔高一丈指標源碼 瀏覽:982
松下php研究所 瀏覽:168
c回調java 瀏覽:401
夢幻端游長安地圖互通源碼 瀏覽:746
電腦本地文件如何上傳伺服器 瀏覽:313