将Python DataFrame导出到SQL表

0 投票
1 回答
4905 浏览
提问于 2025-04-18 13:45

我正在尝试把一个Python的数据表(叫做dataframe)导出到SQL Server的一个表里。请问有没有更好的方法?我遇到了一些错误。数据表的名字是results_out,输出到SQL的表叫做FraudCheckOutput。

cnn_out = pyodbc.connect('driver={SQL Server};server=XYZ;database=BulkLog;uid=sa;pwd=test')

results_out.to_sql(con=cnn_out, name='FraudCheckOutput', if_exists='replace', flavor='sqlite_master')

谢谢。

1 个回答

1

好的,这段代码应该能完成工作:

import pypyodbc

def database_insert(query, params=())
    conn_params = 'driver={SQL Server};server=XYZ;database=BulkLog;uid=sa;pwd=test'
    try:
        conn = pypyodbc.connect(conn_params)
    except pypyodbc.Error, e:
        print str(e)
    else:
        if conn.connected:
            db = conn.cursor()
            db.execute(query, params).commit()
    finally:
        if conn:
            conn.close()

SQL_INSERT_QUERY = """
    INSERT INTO table_name (
        [field_name1],
        [field_name2]
    )
    VALUES (
        1,
        'vale string'
    )
    WHERE
        field_name3 = ?
    """

database_insert(SQL_INSERT_QUERY, ('field_name3_value',))

在使用pyodbc时,方法非常相似

cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=testdb;UID=me;PWD=pass')
cursor = cnxn.cursor()
cursor.execute("insert into products(id, name) values ('pyodbc', 'awesome library')")
cnxn.commit()

更多信息请查看 http://code.google.com/p/pyodbc/wiki/GettingStarted

撰写回答