1. 程式人生 > >python3 pymysql學習筆記

python3 pymysql學習筆記

練手專案需要用到mysql就順手把mysql也學了,這個模組沒什麼好說的,比較簡單,實際整個過程我都是在學mysql語句,但還是發現了一些問題。

 

 

fetchall()      獲取結果集中的所有行
這個函式難受的地方在於返回的是tuple,如果有些欄位的值需要你修改或直接使用是不行的,比如我有一個欄位儲存的是url,需要直接呼叫就必須轉換一下。

testtable #表名
id name url #欄位

cur.execute("select url form testtable")
url_field = cur.fetchall()
for url in url_field:
html = requests.get(url) # 這樣是不行的 因為url是個tuple
"""需要轉化格式 這裡用str"""
url = ''.join(url) # list和tuple轉換str不能用str()
html = requests.get(url) # 成功

但實際上方法有點軸,可以用下標直接從tuple取值,這樣取出來的就是str。
html = requests.get(url[0])

也可以用這種方式逐個獲取所有欄位的值。
cur.execute("select * form testtable")
"""all_field是個tuple,每個元素也是tuple,元素tuple格式為id,name,url對應下標[0][1][2],all_field[0][2],即testtable表中第一行,url欄位的值"""
all_field = cur.fetchall()
id_list = [id[0] for id in all_field]
name_list = [name[1] for name in all_field]
url_list = [url[2] for url in all_field]
list裡元素格式是str,對我來說用起來比較方便。


其實我是到這裡才看了下tuple,直接上手爬基礎的東西都是用哪看哪,包括下標取元素格式是str都是用type輸出實驗的,基礎不牢,不過直接從頭看還是太枯燥而且用不到的話很快就會忘,先這麼搞著。