<kbd id="5sdj3"></kbd>
<th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>

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

    共 1240字,需瀏覽 3分鐘

     ·

    2022-02-26 11:48

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

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

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

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

    ▲Sublime Text3

    如果想進(jìn)一步偷懶,可以怎么做呢?

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

    所要用到的表格數(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

    在字符串中我們?cè)黾恿?code style="font-size: 14px;overflow-wrap: break-word;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px;background-color: rgba(27, 31, 35, 0.05);font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(60, 112, 198);">"\n"用來換行,運(yùn)行結(jié)果如下所示。

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

    import?pyperclip
    pyperclip.copy(text)

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

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

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

    ▲運(yùn)行動(dòng)圖GIF

    這樣我只需運(yùn)行該P(yáng)ython代碼,再粘貼到SQL編輯器中。

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

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

    好啦,偷懶小技巧加一~

    END


    各位伙伴們好,詹帥本帥搭建了一個(gè)個(gè)人博客和小程序,匯集各種干貨和資源,也方便大家閱讀,感興趣的小伙伴請(qǐng)移步小程序體驗(yàn)一下哦?。g迎提建議)

    推薦閱讀


    牛逼!Python常用數(shù)據(jù)類型的基本操作(長文系列第①篇)

    牛逼!Python的判斷、循環(huán)和各種表達(dá)式(長文系列第②篇)

    牛逼!Python函數(shù)和文件操作(長文系列第③篇)

    牛逼!Python錯(cuò)誤、異常和模塊(長文系列第④篇)


    瀏覽 38
    點(diǎn)贊
    評(píng)論
    收藏
    分享

    手機(jī)掃一掃分享

    分享
    舉報(bào)
    評(píng)論
    圖片
    表情
    推薦
    點(diǎn)贊
    評(píng)論
    收藏
    分享

    手機(jī)掃一掃分享

    分享
    舉報(bào)

    <kbd id="5sdj3"></kbd>
    <th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>
    麻豆成人91精品二区三区 | 99婷婷五月天 | 成人视频国产日本韩国欧美豆花 | 一本色道久久综合亚洲精品苍井空 | 亚洲欧美成人网 |