[問題] pypyodbc executemany問題

看板Python作者 (Jimmy)時間6年前 (2019/02/15 17:35), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
大家好,最近使用pypyodbc新增資料到mssql的時候, 發現一個問題,我的dataframe長這樣: https://imgur.com/2KQxbCB
而我的程式碼長這樣: import pypyodbc conn = pypyodbc.connect('DRIVER={ODBC DRIVER 13 FOR SQL SERVER};SERVER={127.0.0.1};DATABASE={DB};UID={id};PWD={psw}' cursor = conn.cursor() cursor.executemany("insert into table values ({})".format(','.join(len(df.columns) * ['?'])),df.values.tolist()) cursor.commit() cursor.close() conn.close() 但發現這樣insert進去db之後,中文都是亂碼 不過如果改用一條一條insert就沒有問題: import pypyodbc conn = pypyodbc.connect('DRIVER={ODBC DRIVER 13 FOR SQL SERVER};SERVER={127.0.0.1};DATABASE={DB};UID={id};PWD={psw}' cursor = conn.cursor() for data in fund_group_df.values.tolist(): sqlstr="insert into fund_type values ('{}')".format("','".join(data)) cursor.execute(sqlstr) cursor.commit() cursor.close() conn.close() 請問一下如果我想用executemany,有何解? 此外如果我是用executemany的方法,想要插入null(例如dataframe內的韓國地區是空白的), dataframe裡面該存什麼樣的資料? 嘗試過nan,空白字串都不對,麻煩各位解惑了! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.44.129 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1550223325.A.0B4.html
文章代碼(AID): #1SPeVT2q (Python)
文章代碼(AID): #1SPeVT2q (Python)