我正在阅读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()