小编Sti*_*i B的帖子

python/pandas 中的整数在 sqlite 中变为 BLOB(二进制)

在 sqlite 中存储整数会导致 BLOB(二进制值)而不是 SQLite 中的 INTEGER。问题是“Baujahr”列中的 INT。表已创建。

CREATE TABLE "Objekt" ( `No` INTEGER NOT NULL UNIQUE, `Objekt_id` INTEGER, 
`Strecke` TEXT, `Baujahr` INTEGER, `Eigentümer` TEXT, PRIMARY KEY(`No`) )
Run Code Online (Sandbox Code Playgroud)

数据框和数据类型:

id  Strecke  Baujahr Eigentümer Objekt_id
5     A23     1938    Fronz      0327

Objekt.dtypes
Strecke       object
Baujahr        int64
Eigentümer    object
Objekt_id     object
dtype: object
Run Code Online (Sandbox Code Playgroud)

DataFrame 被写入 sqlite

stmt ="INSERT INTO Objekt (Objekt_id, Strecke, Baujahr, Eigentümer) VALUES (?, ?, ?, ?)"
c.execute(stmt, (Objekt.Objekt_id.values[0], Objekt.Strecke.values[0], 
Objekt.Baujahr.values[0], Objekt.Eigentümer.values[0] ))
conn.commit()
Run Code Online (Sandbox Code Playgroud)

Sqlite 仅适用于 INT 8,不适用于 INT 32 或 …

python sqlite

4
推荐指数
1
解决办法
1607
查看次数

标签 统计

python ×1

sqlite ×1