我正在尝试跟踪stackoverflow中的一个copy_from示例描述但我修改很少,因为我需要从csv文件中读取数据。按照这个例子我编写了一个小程序,其中文件将从存储在磁盘中的文件中读取,然后将数据从该文件复制到创建的表中,我的代码是:
def importFile():
path = "C:\myfile.csv"
curs = conn.cursor()
curs.execute("Drop table if exists test_copy; ")
data = StringIO.StringIO()
data.write(path)
data.seek(0)
curs.copy_from(data, 'MyTable')
print("Data copied")
但我得到错误,
psycopg2.DataError:整数的输入语法无效:
这是否意味着csv文件与我的表格不匹配?或者这个语法是否足以复制csv文件?或者我还需要更多代码?我是python的新手,所以任何帮助都会受到赞赏..
答案 0 :(得分:2)
使用文本编辑器查看.csv文件。你想确定
如果是这样,以下情况应该有效:
import psycopg2
def importFromCsv(conn, fname, table):
with open(fname) as inf:
conn.cursor().copy_from(inf, table)
def main():
conn = ?? # set up database connection
importFromCsv(conn, "c:/myfile.csv", "MyTable")
print("Data copied")
if __name__=="__main__":
main()