创建 table 并从 CSV 文件复制数据

Create table and copy data from a CSV file

我在 Python 中使用 psycopg2 与 PostgreSQL 一起工作,我正在使用此功能从 CSV 文件复制数据并将其导入我的数据库

with open(csvFile, 'r') as f:
    next(f) # Skip the header row.
    cur.copy_from(f,table, sep=',')

问题是 table 需要在知道文件内容之前创建。有没有办法从 CSV 文件在 postgreSQL 中创建 table?换句话说,将 CSV 文件转换为 table

是的。你可以将 CSV 文件转换成 table。我们可以使用 pandas.

来实现这些
with open(file_input.name, encoding='utf-8-sig', errors='ignore') as csv_obj:
                            csv_dataframe = pd.read_csv(csv_obj)
                            csv_dataframe.to_sql( "table_name"+ str(os.path.splitext(os.path.join(store_path,
                            file.filename))).split(os.sep)[-1], engine, if_exists='replace')

在上面的代码中, 将编码添加为 utf-8-sig,这是用于包含大量记录的大型 csv 文件。 utf-8 适用于小型 csv 文件。 在此之后使用 pandas 读取此对象。 Pandas Dataframe 有 to_sql 方法,有助于在一个衬垫中创建 table 的 csv。我们传递一些参数的地方。像 table_name 和引擎名称。这里引擎我通过了sqlalchemy引擎。