【发布时间】:2016-07-09 05:57:42
【问题描述】:
我正在尝试将一批 CSV 导入 PostgreSQL,但经常遇到数据丢失的问题:
psycopg2.DataError:列“column_name”缺少数据上下文:
COPY table_name,行 CSV 中没有数据的位置
记录,这里是缺失列的数据值。
有时无法将完整的数据集写入行,我必须按原样处理文件。如果数据未记录到任何列中,我正在尝试找出一种删除该行的方法。这是我所拥有的:
file_list = glob.glob(path)
for f in file_list:
filename = os.path.basename(f) #get the file name
arc_csv = arc_path + filename #path for revised copy of CSV
with open(f, 'r') as inp, open(arc_csv, 'wb') as out:
writer = csv.writer(out)
for line in csv.reader(inp):
if "" not in line: #if the row doesn't have any empty fields
writer.writerow(line)
cursor.execute("COPY table_name FROM %s WITH CSV HEADER DELIMITER ','",(arc_csv,))
【问题讨论】:
-
由于我的代表低于 15,我的回复分数不会显示。感谢 cant 和 alecxe!
标签: python postgresql csv psycopg2