大家好,最近使用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,空白字串都不對,麻煩各位解惑了!