[英]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.