導航:首頁 > 編程語言 > pythoncursordict

pythoncursordict

發布時間:2022-04-18 18:36:39

1. python怎麼鏈接mysql

使用PyMySQL操作mysql資料庫

適用環境

python版本 >=2.6或3.3

mysql版本>=4.1

importpymysql.cursors

#Connecttothedatabase
connection=pymysql.connect(host='127.0.0.1',
port=3306,
user='root',
password='zhyea.com',
db='employees',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)

2. python mysql操作問題

dict1 = self.fuc1()
dict2 = self.fun2()
def newdict(self):
dict = {}
for k,v in dict1.items():
dict[k] = v
for k1,v1 in dict2.items():
dict[k1] = v1
return dict

3. python 怎麼連接mysql

使用PyMySQL操作mysql資料庫

適用環境

python版本 >=2.6或3.3

mysql版本>=4.1

連接資料庫如下:

importpymysql.cursors

#Connecttothedatabase
connection=pymysql.connect(host='127.0.0.1',
port=3306,
user='root',
password='zhyea.com',
db='employees',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)

4. python 操作mysql兩個表合並字典

t1是for循環中的局部變數,保存的是列表t1s中的值,for循環結束後當然保存的是最後一個了;而像C語言就不能這樣,會報t1未定義。
你所謂的合並t1、t2是什麼意思?若key相同,該如何取value?

5. python pymysql 怎麼讓查詢返回的字典

m = dict()#m = {}m['a'] = 1 #賦值m['b'] = 2print m['a'] #取值就這么簡單。 如果解決了您的問題請採納! 如果未解決請繼續追問

6. 有沒有利用python開發資料庫的案例

在Windows平台上安裝mysql模塊用於Python開發

用python連接mysql的時候,需要用的安裝版本,源碼版本容易有錯誤提示。下邊是打包了32與64版本。
MySQL-python-1.2.3.win32-py2.7.exe
MySQL-python-1.2.3.win-amd64-py2.7.exe
實例 1、取得 MYSQL 的版本

# -*- coding: UTF-8 -*-
#安裝 MYSQL DB for python
import MySQLdb as mdb
con = None
try:
#連接 mysql 的方法: connect('ip','user','password','dbname')
con = mdb.connect('localhost', 'root','root', 'test');

#所有的查詢,都在連接 con 的一個模塊 cursor 上面運行的
cur = con.cursor()

#執行一個查詢
cur.execute("SELECT VERSION()")
#取得上個查詢的結果,是單個結果

data = cur.fetchone()
print "Database version : %s " % data
finally:
if con:
#無論如何,連接記得關閉
con.close()

實例 2、創建一個表並且插入數據

import MySQLdb as mdb
import sys

#將 con 設定為全局連接
con = mdb.connect('localhost', 'root', 'root', 'test');
with con:

#獲取連接的 cursor,只有獲取了 cursor,我們才能進行各種操作
cur = con.cursor()

#創建一個數據表 writers(id,name)
cur.execute("CREATE TABLE IF NOT EXISTS
Writers(Id INT PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(25))")

#以下插入了 5 條數據
cur.execute("INSERT INTO Writers(Name) VALUES('Jack London')")
cur.execute("INSERT INTO Writers(Name) VALUES('Honore de Balzac')")
cur.execute("INSERT INTO Writers(Name) VALUES('Lion Feuchtwanger')")
cur.execute("INSERT INTO Writers(Name) VALUES('Emile Zola')")
cur.execute("INSERT INTO Writers(Name) VALUES('Truman Capote')")

實例 3、 python 使用 slect 獲取 mysql 的數據並遍歷

import MySQLdb as mdb
import sys

#連接 mysql,獲取連接的對象
con = mdb.connect('localhost', 'root', 'root', 'test');
with con:

#仍然是,第一步要獲取連接的 cursor 對象,用於執行查詢
cur = con.cursor()

#類似於其他語言的 query 函數, execute 是 python 中的執行查詢函數
cur.execute("SELECT * FROM Writers")

#使用 fetchall 函數,將結果集(多維元組)存入 rows 裡面
rows = cur.fetchall()

#依次遍歷結果集,發現每個元素,就是表中的一條記錄,用一個元組來顯示
for row in rows:
print row

運行結果:

(1L, 『Jack London')
(2L, 『Honore de Balzac')
(3L, 『Lion Feuchtwanger')
(4L, 『Emile Zola')
(5L, 『Truman Capote')
上面的代碼,用來將所有的結果取出,不過列印的時候是每行一個元祖列印,現在我們使用方法,取出其中的單個數據:

import MySQLdb as mdb
import sys

#獲取 mysql 的鏈接對象
con = mdb.connect('localhost', 'root', 'root', 'test');
with con:
#獲取執行查詢的對象
cur = con.cursor()
#執行那個查詢,這里用的是 select 語句
cur.execute("SELECT * FROM Writers")
#使用 cur.rowcount 獲取結果集的條數
numrows = int(cur.rowcount)
#循環 numrows 次,每次取出一行數據
for i in range(numrows):
#每次取出一行,放到 row 中,這是一個元組(id,name)
row = cur.fetchone()
#直接輸出兩個元素
print row[0], row[1]

運行結果:

1 Jack London
2 Honore de Balzac
3 Lion Feuchtwanger
4 Emile Zola
5 Truman Capote
實例 4、使用字典 cursor 取得結果集(可以使用表欄位名字訪問值)

import MySQLdb as mdb
import sys
#獲得 mysql 查詢的鏈接對象
con = mdb.connect('localhost', 'root', 'root', 'test')
with con:
#獲取連接上的字典 cursor,注意獲取的方法,
#每一個 cursor 其實都是 cursor 的子類
cur = con.cursor(mdb.cursors.DictCursor)
#執行語句不變
cur.execute("SELECT * FROM Writers")
#獲取數據方法不變
rows = cur.fetchall()
#遍歷數據也不變(比上一個更直接一點)
for row in rows:
#這里,可以使用鍵值對的方法,由鍵名字來獲取數據
print "%s %s" % (row["Id"], row["Name"])

實例 5、獲取單個表的欄位名和信息的方法

import MySQLdb as mdb
import sys
#獲取資料庫的鏈接對象
con = mdb.connect('localhost', 'root', 'root', 'test')
with con:
#獲取普通的查詢 cursor
cur = con.cursor()
cur.execute("SELECT * FROM Writers")
rows = cur.fetchall()
#獲取連接對象的描述信息
desc = cur.description
print 'cur.description:',desc
#列印表頭,就是欄位名字
print "%s %3s" % (desc[0][0], desc[1][0])
for row in rows:
#列印結果
print "%2s %3s" % row

運行結果:

cur.description: ((『Id', 3, 1, 11, 11, 0, 0), (『Name', 253, 17, 25, 25, 0, 1))
Id Name
1 Jack London
2 Honore de Balzac
3 Lion Feuchtwanger
4 Emile Zola
5 Truman Capote
實例 6、使用 Prepared statements 執行查詢(更安全方便)

import MySQLdb as mdb
import sys

con = mdb.connect('localhost', 'root', 'root', 'test')
with con:
cur = con.cursor()
#我們看到,這里可以通過寫一個可以組裝的 sql 語句來進行
cur.execute("UPDATE Writers SET Name = %s WHERE Id = %s",
("Guy de Maupasant", "4"))
#使用 cur.rowcount 獲取影響了多少行
print "Number of rows updated: %d" % cur.rowcount

結果:
Number of rows updated: 1

實例 7、把圖片用二進制存入 MYSQL

有人喜歡把圖片存入 MYSQL(這種做法貌似很少吧),我看大部分的程序,圖片都是存放在伺服器上的文件,資料庫中存的只是圖片的地址而已,不過 MYSQL 是支持把圖片存入資料庫的,也相應的有一個專門的欄位 BLOB (Binary Large Object),即較大的二進制對象欄位,請看如下程序,注意測試圖片自己隨便找一個,地址要正確:
首先,在資料庫中創建一個表,用於存放圖片:

復制代碼代碼如下:

CREATE TABLE Images(Id INT PRIMARY KEY AUTO_INCREMENT, Data MEDIUMBLOB);

然後運行如下 PYTHON 代碼進行:

import MySQLdb as mdb
import sys

try:
#用讀文件模式打開圖片
fin = open("../web.jpg")
#將文本讀入 img 對象中
img = fin.read()
#關閉文件
fin.close()
except IOError, e:
#如果出錯,列印錯誤信息
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit(1)
try:
#鏈接 mysql,獲取對象
conn = mdb.connect(host='localhost',user='root',passwd='root',
db='test')
#獲取執行 cursor
cursor = conn.cursor()
#直接將數據作為字元串,插入資料庫
cursor.execute("INSERT INTO Images SET Data='%s'" %
mdb.escape_string(img))
#提交數據
conn.commit()
#提交之後,再關閉 cursor 和鏈接
cursor.close()
conn.close()
except mdb.Error, e:
#若出現異常,列印信息
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit(1)

實例 8、從資料庫中把圖片讀出來

import MySQLdb as mdb
import sys

try:
#連接 mysql,獲取連接的對象
conn = mdb.connect('localhost', 'root', 'root', 'test');
cursor = conn.cursor()
#執行查詢該圖片欄位的 SQL
cursor.execute("SELECT Data FROM Images LIMIT 1")
#使用二進制寫文件的方法,打開一個圖片文件,若不存在則自動創建
fout = open('image.png','wb')
#直接將數據如文件
fout.write(cursor.fetchone()[0])
#關閉寫入的文件
fout.close()
#釋放查詢數據的資源
cursor.close()
conn.close()
except IOError, e:
#捕獲 IO 的異常 ,主要是文件寫入會發生錯誤
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit(1)

實例 9、使用 Transaction 即事務(手動提交,自動回滾)

import MySQLdb as mdb
import sys

try:
#連接 mysql,獲取連接的對象
conn = mdb.connect('localhost', 'root', 'root', 'test');
cursor = conn.cursor()
#如果某個資料庫支持事務,會自動開啟
#這里用的是 MYSQL,所以會自動開啟事務(若是 MYISM 引擎則不會)
cursor.execute("UPDATE Writers SET Name = %s WHERE Id = %s",
("Leo Tolstoy", "1"))
cursor.execute("UPDATE Writers SET Name = %s WHERE Id = %s",
("Boris Pasternak", "2"))
cursor.execute("UPDATE Writer SET Name = %s WHERE Id = %s",
("Leonid Leonov", "3"))
#事務的特性 1、原子性的手動提交
conn.commit()
cursor.close()
conn.close()
except mdb.Error, e:
#如果出現了錯誤,那麼可以回滾,就是上面的三條語句要麼執行,要麼都不執行
conn.rollback()
print "Error %d: %s" % (e.args[0],e.args[1])

結果:
1、因為不存在 writer 表( SQL 第三條語句),所以出現錯誤:Error 1146: Table 『test.writer' doesn't exist
2、出現錯誤,出發異常處理, 3 條語句的前兩條會自動變成了沒有執行,結果不變
3、如果本代碼放到一個 MyISAM 引擎表,前兩句會執行,第三句不會;如果是 INNDB 引擎,則都不會執行。

7. python 新手問題啊,為什麼我運行一個python程序,另一個就會自動退出呢始終只能運行一個

兩個程序基本一樣,可以開多線程,threading。然後在不同的地方分別開一個線程運行,沒必要運行兩個程序。

8. python mysql 字典 怎麼列印

Python的MySQLdb模塊是Python連接MySQL的一個模塊,默認查詢結果返回是tuple類型,只能通過0,1..等索引下標訪問數據默認連接資料庫:
復制代碼 代碼如下:
MySQLdb.connect(
host=host,
user=user,
passwd=passwd,
db=db,
port=port,
charset='utf8'
)
查詢數據:
復制代碼 代碼如下:
cur = conn.cursor()
cur.execute('select b_id from blog limit 1')data = cur.fetchall()
cur.close()
conn.close()
列印:
復制代碼 代碼如下:
for row in data:
print type(row)
print row
執行結果:
復制代碼 代碼如下:
<type 'tuple'>
(1L,)
為tuple類型。
我們可以這么干使得數據查詢結果返回字典類型,即 欄位=數據導入模塊
復制代碼 代碼如下:
import MySQLdb.cursors
在連接函數里加上這個參數 cursorclass = MySQLdb.cursors.DictCursor 如:
復制代碼 代碼如下:
MySQLdb.connect(
host=host,
user=user,
passwd=passwd,
db=db,
port=port,
charset='utf8',
cursorclass = MySQLdb.cursors.DictCursor
)
再重新運行腳本,看看執行結果:
復制代碼 代碼如下:
<type 'dict'>
{'b_id': 1L}
搞定!
注意,在連接的時候port如果要指定則值必須是整型,否則會出錯!

9. python 使用pip安裝mysql出現如下問題,怎麼解決

1. 沒有在Win平台安裝的經驗,不過在其他平台都裝過。
2. 建議先把mysql安裝好,這樣其他組件依賴的內容都會有了。
3. pip是用來安裝Python的mysql driver的,
pip install MySQL-python
4. 如果不介意性能(在Win上要啥性能==),建議安裝MySQL官方提供的
mysql-connector-python 純Python編寫,不需要編譯就可以用了,介面也是遵守PEP的標準的

10. python 報錯TypeError: tuple indices must be integers or slices, not str 怎麼解決

錯誤原因:

元祖的索引必須是整數或者切片,不能是字元,通過pymysql訪問資料庫,並查詢數據

解決方法:

把Cursor關鍵字替換成DictCursor關鍵字。

ictCursor的這個功能是繼承於CursorDictRowsMixIn,在默認情況下cursor方法返回的是BaseCursor類型對象,BaseCursor類型對象在執行查詢後每條記錄的結果以列表(list)表示。如果要返回字典(dict)表示的記錄,就要設置cursorclass參數為MySQLdb.cursors.DictCursor類。

這個參數也可在調用connect方法建立連接時設置,如下:

>>> conn = MySQLdb.connect(host='192.168.1.103', port=3306, user='testacc', pass

wd='test1234', db='1dcq', cursorclass=MySQLdb.cursors.DictCursor)

>>>conn.close()

例子:

>>> import MySQLdb

>>> conn = MySQLdb.connect(host='192.168.1.103', port=3306, user='testacc',

passwd='test1234', db='1dcq')

>>> cursor = conn.cursor()

>>> cursor.execute('SELECT * FROM pagesobject LIMIT 0, 1')

閱讀全文

與pythoncursordict相關的資料

熱點內容
壓縮包解碼器下載 瀏覽:130
愛旅行的預備程序員 瀏覽:111
安卓qq瀏覽器怎麼轉換到ios 瀏覽:292
不同編譯器的庫可以調用嗎 瀏覽:455
灰度信託基金加密 瀏覽:421
宿遷程序員兼職網上接單 瀏覽:924
電視編譯器怎麼設置 瀏覽:276
手機如何解壓漢字密碼的壓縮包 瀏覽:701
為什麼很多程序員愛用vim 瀏覽:828
安卓手機怎麼連接寶華韋健音響 瀏覽:555
12星座製作解壓球 瀏覽:867
java調用oracle數據 瀏覽:827
怎麼在伺服器上上傳小程序源碼 瀏覽:304
空中加油通達信指標公式源碼 瀏覽:38
分卷解壓只解壓了一部分 瀏覽:760
php網站自動登錄 瀏覽:705
合肥凌達壓縮機招聘 瀏覽:965
怎麼找到文件夾的圖標 瀏覽:237
linuxc編程pdf百度雲 瀏覽:192
會計pdf下載 瀏覽:835