如何用sqlalchemy在sqlite表中插入一个大的列表。

问题描述 投票:0回答:1

我对flask_sqlalchemy不是很了解,但就我所知,如果我有一个pandas(130列,1行)数据框,并且我想把它插入到一个sqlite db中,我应该首先建立一个类 "Mytable",就像

class Mytable(db.Model):
      __tablename__ = 'mytable'
      id = db.Column(db.Integer, primary_key=True)
      val0 = db.Column(db.String(64), unique=True)
      val1 = db.Column(db.String(64))
      .
      .
      .
      va129 = db.Column(db.String(64))
      def __repr__(self):
             return '<Mytable %r>' % self.name

的表,在pandas和sqlite db表之间设置匹配的列,然后使用类似于

mytable = Mytable(col1=pandas[0],col1=pandas[1],......)
db.session.add(mytable)
db.session.commit()

有什么不那么痛苦的方法来创建130列的表类吗? 你有什么建议,以避免写所有130行从Mytable类和mytable行?

python flask-sqlalchemy
1个回答
0
投票

我解决了这个方法,如果 encode_pd 是要插入 Mytable 的行,我们可以使用

row_to_write = list(encode_pd.loc[0])
row_value_markers = ','.join(['?']*len(row_to_write))
engine.execute("INSERT INTO Encodes VALUES (%s)"%row_value_markers, row_to_write)
© www.soinside.com 2019 - 2024. All rights reserved.