python-3.x to_sql()缺少1个必需的位置参数:'con'

yjghlzjz  于 2023-08-08  发布在  Python
关注(0)|答案(3)|浏览(198)

我试图加载 Dataframe 到SQL,但我得到如下错误:-

**错误:to_sql()缺少1个必需的位置参数:联系我们

我的程序如下:-

cnx = mysql.connector.connect(user='sock', password='123564', host='127.0.0.1', database='sock')
cursor = cnx.cursor()


source = 'C:\\Users\\PycharmProjects\\main\\NSE\\Equity_Data - Copy'

files = os.listdir(source)
exten = '.csv'

for f in files:
    if f[-4:] == exten:
        final_path = os.path.join(source, f)
        data = pd.read_csv(final_path, parse_dates=True, index_col=0)
        df = pd.DataFrame(data)
        print('datafram impport done')

    table = []
    query = []
    with open("C:\\Users\\PycharmProjects\\main\\NSE\\test.txt", "r") as line:
        for row in line:
            row = row.rstrip('\n')
            table.append(row)
            for tb in table:

                qw = '"{}", con=cnx, if_exists="replace", chunksize=1000'.format(tb)
                query.append(qw)
                print('query append done')

                for que in query:
                   print(que)
                   df.to_sql(que)

字符串

cnwbcb6i

cnwbcb6i1#

在您的情况下,字符串格式应该是:

qw = '"{0}", con={1}, if_exists="replace", chunksize=1000'.format(tb, cnx)

字符串

smdncfj3

smdncfj32#

我对程序做了一些修改,它开始工作了。下面是编辑。
从sqlalchemy导入create_engine
第一次更新:我用了SQLAlchemy
第一个月
第二次更新:以前传递给查询的字符串不起作用,所以我必须像这样使用查询。

qw = '{0}'.format(tb)
                query.append(qw)

                for que in query:
                    df.to_sql(que, if_exists="append", chunksize=1000, con=engine) ```

字符串

bz4sfanl

bz4sfanl3#

您忘记指定的是连接。还应该将连接对象作为代码中的另一个参数传递。这是我建议的修改后的代码。

df.to_sql(que, cnx)

字符串
希望这对你有用。

相关问题