<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何用Python快速生成SQL語句?

          共 1175字,需瀏覽 3分鐘

           ·

          2022-01-10 12:30

          大家好,我是寶器??

          作為一名搞數(shù)據(jù)的,寫SQL是每天必不可少的工作。而我又是一個喜歡偷懶的人,就想著能不能使用Python快速生成SQL語句呢?

          假如現(xiàn)在想建一個臨時表自己練習(xí),我使用create table建表后,還需要使用多條INSERT INTO語句向表中插入數(shù)據(jù),具體語法如下圖所示。

          寫入一行數(shù)據(jù)還好,但是如果N多行,手動就略微麻煩了。

          我之前要么在編輯器Sublime Text3里多行操作,要么在Excel文件中使用函數(shù)生成SQL插入語句。

          ▲Sublime Text3

          如果想進一步偷懶,可以怎么做呢?

          我希望能夠使用Python一鍵將csv文件中的數(shù)據(jù)轉(zhuǎn)成SQL語句,并輸出到剪貼板上,這樣我們直接粘貼到SQL編輯器上就可以直接運行了!

          所要用到的表格數(shù)據(jù)(data_1.csv)如下所示:

          我們可以這樣做,Pandas模塊讀取csv文件的數(shù)據(jù)后,使用for循環(huán)依次讀取每一行的數(shù)據(jù)。并通過f-string格式化字符串,一鍵生成我們所需的SQL語句。

          import?pandas?as?pd
          df?=?pd.read_csv("data_1.csv")
          tables?=?"mysql.newtable"
          text?=?""
          for?index,?row?in?df.iterrows():
          ????text?=?f"{text}INSERT?INTO?{tables}?VALUES('{row[0]}','{row[1]}','{row[2]}','{row[3]}','{row[4]}');\n"
          text

          在字符串中我們增加了"\n"用來換行,運行結(jié)果如下所示。

          那么如何將輸出的結(jié)果寫入剪貼板呢?

          import?pyperclip
          pyperclip.copy(text)

          這個pyperclip模塊賊簡單,就兩個函數(shù):

          • copy()用于向剪貼板發(fā)送文本;
          • paste()用于從剪貼板接收文本。

          如果我們將兩段代碼一起運行,就會在鼠標(biāo)的剪切板上出現(xiàn)SQL語句,具體效果如下所示。

          ▲運行動圖GIF

          這樣我只需運行該Python代碼,再粘貼到SQL編輯器中。

          執(zhí)行一下,成功插入數(shù)據(jù)。

          其實這種方法還可以應(yīng)用在很多類似的場景,例如UPDATE語句、DELETE語句等等,思路都是一致的。

          好啦,偷懶小技巧加一~

          ·················END·················

          推薦閱讀

          1. 我在字節(jié)做了哪些事

          2. 寫給所有數(shù)據(jù)人。

          3. 從留存率業(yè)務(wù)案例談0-1的數(shù)據(jù)指標(biāo)體系

          4. 數(shù)據(jù)分析師的一周

          5. 超級菜鳥如何入門數(shù)據(jù)分析?


          歡迎長按掃碼關(guān)注「數(shù)據(jù)管道」

          瀏覽 66
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  高清无码视频在线看 | 伊人操逼网 | 国产一级AA片 | 伊人成仁网站 | 小泽玛利亚av在线 |