pandas to_sql 中的 dtype 引发 ValueError

San*_*gha 6 python csv sqlite pandas

我能够使用以下代码在 python 中使用 pandas 成功将 CSV 数据写入 SQLite:

df = pandas.read_csv(path + '/issues.csv')
df.to_sql('issues', connection, if_exists='replace', index=False)
Run Code Online (Sandbox Code Playgroud)

但是,我想将其中一列定义为整数,并根据文档,当我尝试使用此代码时:

df = pandas.read_csv(path + '/issues.csv')
df.to_sql('issues', connection, if_exists='replace', index=False, dtype={"severity_int": sqlalchemy.types.Integer()})
Run Code Online (Sandbox Code Playgroud)

我收到错误:

File "/usr/local/lib/python3.7/site-packages/pandas/io/sql.py", line 1722, in to_sql
    raise ValueError(f"{col} ({my_type}) not a string")
ValueError: severity_int (INTEGER) not a string
Run Code Online (Sandbox Code Playgroud)

我认为我做得对,但不知道错误在哪里。

Cha*_*uad 0

我认为您需要将所有列转换为字符串。尝试这个:

df = df.astype(str)
Run Code Online (Sandbox Code Playgroud)