0
问题:我试图将数据从SQL Server中的一个表移动到Postgresql中的另一个表。 ETL过程是这样的:Python:为什么PostgreSQL表中的列名使用双引号括起来?
def transfer_data():
sql = """SELECT TOP(100) * FROM LoanAgreements"""
df = pd.read_sql(sql, lms_conn)
df.to_sql(PG_TABLE, engine, schema=PG_SCHEMA, if_exists='replace', index=False)
def get_data():
sql = """SELECT LoanAgreementID FROM rileys_schema.test1"""
df = pd.read_sql(sql, engine)
return df
将数据传输到PostgreSQL为Test1后,当我试图从它来查询,我得到一个错误说,列不存在。看起来好像我必须指定包含在双引号中的列名来执行查询。有没有解决的办法?
错误看起来是这样的:
sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) column "loanagreementid" does not exist
LINE 1: SELECT LoanAgreementID FROM rileys_schema.test1
^
[SQL: 'SELECT LoanAgreementID FROM rileys_schema.test1']
也许引号被视为字符串的一部分?让你的etl寻找引号并删除它们? –
当您执行打印(df.columns)时,双引号不会出现 –
并且当您执行df.loc [0,'column']时?它是否需要你做df.loc [0,'“coloumn”'] –