我对将csv-data导入postgres数据库的可能性感到有些困惑。
我的问题:我有一个包含大约70列的csv文件,但我只想导入这70列的特定列。
我已经尝试了psycopg2.copy_from()
,但是当我指定我的列时:
psycopg2.copy_from(csv_in, 'stamm_data', sep=';', columns = 'col_1', 'col_4', 'col_7')
我明白了:
Error: extra data after last expected column
因此,另一种解决方案是使用dictionaries
将列名作为键,将数据作为值,然后将数据psycopg2.execute("INSERT INTO..")
导入数据库。
我也可以将我需要的列写入新的csv文件,并使用psycopg2.copy_from()
导入它。
或者我使用psycopg2.execute("COPY ..")
或psycopg2.copy_expert()
。
那么,对我的问题最有效的方式是什么?