我正在尝试使用Django的db连接变量将pandas数据帧插入Postgres数据库。我使用的代码是
df.to_sql('forecast',connection,if_exists='append',index=False)
然后出现以下错误
在SQL'SELECT name FROM sqlite_master WHERE type ='table'AND name = ?;'上执行失败:关系“ sqlite_master”不存在 第1行:从sqlite_master中选择名称,其中type ='table'AND name =?...
我认为这是因为Django连接对象不是sqlalchemy对象,因此Pandas假定我正在使用sqlite。除了与数据库建立另一个连接外,还有什么方法可以使用.to_sql?
答案 0 :(得分:0)
可以在setting.py文件中创建数据库配置
<%
ResultSet rs = stmt.executeQuery("select videos from your_table")
rs.next();
InputStream istr = rs.getBlob("videos").getBinaryStream();
Object obj = new ObjectInputStream(istr).readObject();
String strObjClass = obj.getClass().getName();
out.println("Retrieved object " + obj + " of the class " + strObjClass);
%>
如果要创建sql_alchemy连接,则应使用DB_URI_DEFAULT或DB_URI_OTHER
在该类的 init 方法中,您将使用应编写的.to_sql方法
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')
当您使用熊猫的.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()