如何使用 pandas 和 pyodbc 将 CSV 文件数据导入我的数据库?
How to import CSV file data into my database using pandas and pyodbc?
导入包
import pandas as pd
import pyodbc
建立联系
conn = pyodbc.connect("Driver={ODBC Driver 17 for SQL Server}; Server=servername; Database=databasename; Trusted_Connection=Yes")
cur = conn.cursor()
保存构建 table
的 SQL 代码
string = "CREATE TABLE TESTDATA(Log int PRIMARY KEY, User varchar(15))"
tablename = re.search("CREATE TABLE ([a-z A-Z]+)\(",string)
if tablename:
tablename = tablename.group(1)
如果 table 名称不在 sql table 列表中,则构建 table
if not cur.table(table=tablename).fetchone():
cur.execute(string)
conn.commit()
读取 data.csv 文件
df = pd.read_csv(r"data.csv")
df.to_sql(name="TESTDATA", con=conn, index=True, index_label="id")
文件示例
data.csv:
Log User
1 Jack
2 Jackie
3 Jacky
我想将这些数据导入 SQL 数据库,但失败了
我不确定哪里出了问题,但它成功构建了 table 并且未能将 csv 文件读入 table
"CSV" 是 "comma-separated values" 的缩写。不幸的是,现在术语 "CSV" 几乎适用于所有包含数据的文本文件,即使那些不使用逗号作为字段分隔符的文本文件也是如此。
尽管如此,除非另有说明,否则许多实用程序都采用逗号分隔符。 pandas read_csv 方法是其中之一:
sep : str, default ‘,’
所以对于包含
的文本文件
Log User
1 Jack
2 Jackie
3 Jacky
代码
df = pd.read_csv(r"C:\Users\Gord\Desktop\data.txt")
print(df.to_dict())
生产
{'Log User': {0: '1 Jack', 1: '2 Jackie', 2: '3 Jacky'}}
请注意,只有一列名为 'Log User'
,每一行都包含文本文件中的整行。
如果您想正确解析该文件,您需要使用
df = pd.read_csv(r"C:\Users\Gord\Desktop\data.txt", delim_whitespace=True)
导入包
import pandas as pd
import pyodbc
建立联系
conn = pyodbc.connect("Driver={ODBC Driver 17 for SQL Server}; Server=servername; Database=databasename; Trusted_Connection=Yes")
cur = conn.cursor()
保存构建 table
的 SQL 代码string = "CREATE TABLE TESTDATA(Log int PRIMARY KEY, User varchar(15))"
tablename = re.search("CREATE TABLE ([a-z A-Z]+)\(",string)
if tablename:
tablename = tablename.group(1)
如果 table 名称不在 sql table 列表中,则构建 table
if not cur.table(table=tablename).fetchone():
cur.execute(string)
conn.commit()
读取 data.csv 文件
df = pd.read_csv(r"data.csv")
df.to_sql(name="TESTDATA", con=conn, index=True, index_label="id")
文件示例
data.csv:
Log User
1 Jack
2 Jackie
3 Jacky
我想将这些数据导入 SQL 数据库,但失败了
我不确定哪里出了问题,但它成功构建了 table 并且未能将 csv 文件读入 table
"CSV" 是 "comma-separated values" 的缩写。不幸的是,现在术语 "CSV" 几乎适用于所有包含数据的文本文件,即使那些不使用逗号作为字段分隔符的文本文件也是如此。
尽管如此,除非另有说明,否则许多实用程序都采用逗号分隔符。 pandas read_csv 方法是其中之一:
sep : str, default ‘,’
所以对于包含
的文本文件Log User
1 Jack
2 Jackie
3 Jacky
代码
df = pd.read_csv(r"C:\Users\Gord\Desktop\data.txt")
print(df.to_dict())
生产
{'Log User': {0: '1 Jack', 1: '2 Jackie', 2: '3 Jacky'}}
请注意,只有一列名为 'Log User'
,每一行都包含文本文件中的整行。
如果您想正确解析该文件,您需要使用
df = pd.read_csv(r"C:\Users\Gord\Desktop\data.txt", delim_whitespace=True)