创建 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引擎。
我在 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引擎。