0

我正在尝试连接 postgresql 服务器并将一些数据帧插入到表中,这是我的代码

import datetime
import gzip
import logging
import os
import sys
import traceback
import numpy as np
import pandas as pd
import psycopg2
from pandas.io.sql import SQLTable, pandasSQL_builder
from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT
from sqlalchemy import create_engine

c = psycopg2.connect(database="dc_integration", user="mastername", 
host="integrationdb.c46zksctipg7.ap-southeast-1.rds.amazonaws.com", 
password="xxx")

d = {'project_key': [1, 2], 'project_name': [3, 4], 'update_date': 
['2016-06-22 19:10:28','2016-06-22 19:10:15']}
df = pd.DataFrame(data=d)
df.to_sql('project', con=c)

但我得到这个错误

DatabaseError: 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=?...

但我可以从表中读取数据。我不知道为什么会失败。

4

1 回答 1

0

我认为您应该将您的 search_path 设置为您的表所在的架构。

无论是:

ALTER USER username SET search_path = schema;

在 PostgreSQL 中。

或者在 psycorg2.connect 的参数中设置你的 search_path:

search_path=schema

于 2019-02-11T09:29:08.380 回答