当数据类型为十进制时,我的Dataframe不会使用“to_sql”方法发送到SQLite数据库:
con = sqlite3.connect("test.db")
df = pd.DataFrame({"a":[decimal.Decimal(0)]})
df.to_sql(name="table", con=con)
错误:
sqlite3.InterfaceError:错误绑定参数0 - 可能 不支持的类型。
周围有办法吗?我更喜欢将Decimal(在数据库中)存储为“text”
答案 0 :(得分:1)
嗨,我遇到了同样的问题,我通过将Dataframe中的Decimal列转换为SQLAlchemy Numeric数据类型来解决了该问题:
public Entity
{
@Embedded
@AttributeOverrides({
@AttributeOverride(name = "type", column = @Column(name = "type1")),
...
})
private EntityItem restrictionItem;
@Embedded
@AttributeOverrides({
@AttributeOverride(name = "type", column = @Column(name = "type2")),
...
})
private EntityItem applyItem;
}
@Embeddable
public EntityItem
{
private _Enum type;
private String name;
@Where ?
private List<Item> list; //?
}
答案 1 :(得分:0)
from sqlalchemy.types import DECIMAL
df.to_sql(name="table", con=con, dtype = {"a" : DECIMAL})
将df发送到sql时,您可以转换为十进制。