繁体   English   中英

如何使用 copy_expert 将数据加载到列名中具有特殊字符的 postgresql 表中?

[英]How to load data into postgresql table having special characters in column names using copy_expert?

我正在将 csv 文件 emp.csv 中的数据加载到 postgres sql 表 emp 中,如下所示:

df = pd.read_csv("C:\Users\vgarud\emp.csv")
cols = ",".join(df.columns)
fh = open(r"C:\Users\vgarud\emp.csv",'r')
next(fh)
q1 = "copy public.emp(cols) from STDIN with (format csv,delimiter ',')"
cur.copy_expert(q1,fh)
con.commit()
fh.close()

这工作正常。 但是,只要任何列的名称中有特殊字符,例如“-”,上面的复制查询就会失败。 它要求列应该用双引号括起来,例如“id”、“name”、“desgn”、“sal”。

但是这 --> cols = ",".join(df.columns) 将列创建为 "id,name,desgn,sal"。

那么知道如何从 dataframe 列创建引号列名称字符串吗?

列名必须用双引号括起来,可以这样做:

cols = ",".join('"{}"'.format(col) for col in df.columns)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM