我正在尝试将 200 个 SAS XPT 文件导入我的 PostgreSQL 数据库:
engine = create_engine('postgresql://user:pwd@server:5432/dbName')
for file in listdir(dataPath):
name, ext = file.split('.', 1)
with open(join(dataPath, file), 'rb') as f:
xport.to_dataframe(f).to_sql(name, engine, schema='schemaName', if_exists='replace', index=False)
print("Successfully wrote ", file, " to database.")
但是,生成的 SQL 对所有标识符都有双引号,例如:CREATE TABLE "Y2009"."ACQ_F" ("SEQN" FLOAT(53), "ACD010A" FLOAT(53));
. 问题是,如果列/表/模式是用引号创建的,那么每次我需要查询它们时,我也必须包括引号,同时使用精确的大写。
我想去掉引号,而我自己不能编写自定义 SQL,因为这些文件每个都有非常不同的结构。