我对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行?
我解决了这个方法,如果 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)