为什么整数在数据库中被保存(显示)为二进制,其他值不是&t-sqlalchemy

时间:2018-04-06 09:06:17

标签: python pandas sqlite csv sqlalchemy

我正在阅读csv并将某些列保存(尝试)到我的数据库中。我这样做了,想要在我的数据库中仔细检查一行,看看是否一切正常。但是,我的一个列保存为b'd\x00\x00\x00\x00\x00\x00\x00'。我不确定那是什么意思和谷歌搜索,并发现它的二进制(找到正确吗?)这真的让我很困惑。 csv文件中该特定列和行的值为100,在我的模型中,特定列表示为整数。 编辑我将Flask与sqlalchemy一起使用。

以下是相关代码:

我的模特

class DesiredClass(db.model):
    id = db.Column(db.Integer, primary_key=True)
    created = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)

    speed = db.Column(db.Float, nullable=False)  # in m/s
    direction = db.Column(db.Float, nullable=False)  # in degrees
    different_value = db.Column(db.Integer, nullable=False)  # in percent

csv中的示例行及其各自的列

速度;方向; different_value

32.2; 52.4; 100

读取csv并保存到db

 df = pd.read_csv(filename, sep=';')

        for i in df.index:
            m = DesiredClass(
                speed=df.loc[i, 'SPEED'],
                direction=df.loc[i, 'DIRECTION'],
                different_value=df.loc[i, 'DIFFERENT_VALUE'],
            )

            db.session.add(m)  # add to db
        db.session.commit()  # perform them all

然后我检查了我的笔记本以查看已保存的内容。并在b'd\x00\x00\x00\x00\x00\x00\x00'列中看到different_value。所有其他人都以正确的格式保存。

因此,1)我很困惑为什么它表明这种方式,并且没有发生在其他列上。 2)哪里开始?我加倍检查了csv并查看了我正在查看的特定行,看看是否有一些奇怪的东西。但它的值只有100.

提前致谢。

更新 我使用flask_sqlalchemy和sqlite。为了检查我是否使用了jupyter笔记本,运行我所拥有的,然后在那里做了以下 result = DesiredClass.query.with_entities(DesiredClass.id, DesiredClass.speed, DesiredClass.direction, DesiredClass.different_value)。  然后我做了result.first()

0 个答案:

没有答案