gpt4 book ai didi

django - Django中的 Pandas to_sql

转载 作者:行者123 更新时间:2023-12-03 16:26:41 28 4
gpt4 key购买 nike

我正在尝试使用Django的db连接变量将pandas数据帧插入Postgres数据库。我使用的代码是

df.to_sql('forecast',connection,if_exists='append',index=False)

我得到以下错误

Execution failed on sql 'SELECT name FROM sqlite_master WHERE type='table' AND name=?;': relation "sqlite_master" does not exist LINE 1: SELECT name FROM sqlite_master WHERE type='table' AND name=?...



我认为发生这种情况是因为Django连接对象不是sqlalchemy对象,因此Pandas假设我正在使用sqlite。除了建立与数据库的另一个连接外,还有什么方法可以使用.to_sql?

最佳答案

可以在setting.py文件中创建数据库配置

DATABASES = {
'default': env.db('DATABASE_URL_DEFAULT'),
'other': env.db('DATABASE_URL_OTHER')
}
DB_URI_DEFAULT=env.str('DATABASE_URL_DEFAULT')
DB_URI_OTHER=env.str('DATABASE_URL_OTHER')

如果要创建sql_alchemy连接,则应使用DB_URI_DEFAULT或DB_URI_OTHER

在该类的 init 方法中,应使用.to_sql方法,您应编写
from you_project_app import settings
from sqlalchemy import create_engine
import pandas as pd

class Example:

def __init__(self):
self.conn_default = create_engine(settings.DB_URI_DEFAULT).connect()

当您使用.to_sql Pandas 方法时,它应该是这样的:
df_insert.to_sql(table, if_exists='append',index=False,con=self.conn_default)

关于django - Django中的 Pandas to_sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53977693/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com