将值插入MSSQL数据库时遇到问题。 该字符串来自一个经过修饰的Pandas Dataframe,并应通过 sqlalchemy / pyodbc。由于Panda Dataframe的“ to_sql”方法要慢一些,因此我想批量添加1000个值,并构建了以下方法(根据网上的教程):
def chunker(seq, size):
return (seq[pos:pos + size] for pos in range(0, len(seq), size))
def mssql_insert_rows(records,db_extract, target_tbl):
insert_ = "INSERT INTO dbo."+ db_extract+ "_"+ target_tbl+ " VALUES "
for batch in chunker (records, 1000):
rows = ','.join(batch)
insert_rows = insert_+rows
cursorSQL.execute(insert_rows)
connSQL.commit()
这是字符串的样子:
(\'2 \',\'10 \',\'41 \',\'null \',\'null \',\'null \',\'None \',\'FR \ ',“ Saint-ouen l \'aumône”,\'2013_07M \',\'False \',\'True \',\'113706 \',\'1990-01-01 00:00:00.0 \' ,\'2013-04-30 00:00:00.0 \',\'9AAE305417 \',\'null \',\'None \',\'False \',\'False \')
由于cou可以看到值“ Saint-ouen l \'aumône”对于插入非常不好,因为该程序现在认为它是列的名称。我尝试了df.replace或str.replace之类的不同方法来解决此问题,但没有什么真正让我找到解决方案的。
这里有没有人知道一种转换这样的值的简便方法? 我个人不介意该值看起来像是
Saint-ouen laumone
等等。
提前谢谢! :-)