Dataset 使用填坑記錄
阿新 • • 發佈:2018-12-14
Dataset 使用填坑記錄
Dataset被譽為懶人資料庫(databases for lazy people),是Python操作MySQL的庫。因為其簡單的操作,避開了繁瑣的依賴安裝和連結建立,能夠很快的和資料庫進行互動。但是在使用過程中,遇到了不少的坑,這篇文章旨在記錄使用過程中遇到的坑,避免下次再犯浪費時間。
連線不釋放
使用Dataset連線MySQL,連線不會主動釋放,這樣會導致表結構被鎖住,無法修改表結構,以下方法會主動釋放連線
conn = dataset.connect(
url="mysql://dipadmin:[email protected] :6103/elk_portal?autocommit=true",
reflect_views=False
)
UTF-8 With Unicode
當MySQL資料庫中有中文或者查詢語句中有中文時,需要注意編碼格式
- 當MySQL中存在中文時
conn = dataset.connect(
url="mysql://dipadmin:[email protected]:6103/elk_portal?charset=utf8"
)
res = conn.query("select * from luwak_task")
true_sql = res. next()["true_sql"].encode("utf-8")
- 當Query SQL中存在中文時
conn = dataset.connect(
url="mysql://dipadmin:[email protected]:6103/elk_portal"
)
sql = "select * from luwak_project where content = '提取任務'"
res = conn.query(sql.decode("utf-8"))
true_sql = res.next()["name"]