程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python中sql拼接時對字段可能為空的處理思路

編輯:Python

上午遇到的一個問題,現在有一個需求,將上傳的excel文件解析出來並將解析出來的字段信息保存到mysql數據庫。用的pandas解析,字符串的format方法拼接sql,像下面這樣:

sql = f""" insert into xxx(c1, c2, c3) values ("{
v1}", "{
v2}", "{
v3}"); """

excel中的字段可能有值可能沒值,比如說v1字段,類型為日期型,如果有值則c1保存日期值,沒有的話c1就保存null。現在面臨的一個問題就是,{v1}外面引號的處理,如果不帶引號,v1有值時插入日期會報錯,如果帶引號,v1沒值時插入"null"也會報錯,因為c1列只接受null或日期。

想了好久代碼裡都沒有想到好的解決思路,甚至想到了用觸發器解決,後來請教了下同事,頓時醍醐灌頂,只能說,路漫漫其修遠兮!同事只加了一句代碼:sql.replace('"null"', 'null'),就是這麼簡潔優雅。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved