[问题] pypyodbc executemany问题

楼主: pig98520 (CheinFeng)   2019-02-15 17:35:23
大家好,最近使用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,空白字串都不对,麻烦各位解惑了!

Links booklink

Contact Us: admin [ a t ] ucptt.com