Python 如何使用flask-sqlalchemy.exc.ProgrammingError将数据插入postgresql数据库?
我想用flask将数据插入postgresql数据库 这是我编写的一个模型类代码Python 如何使用flask-sqlalchemy.exc.ProgrammingError将数据插入postgresql数据库?,python,postgresql,sqlalchemy,Python,Postgresql,Sqlalchemy,我想用flask将数据插入postgresql数据库 这是我编写的一个模型类代码 class Bet365(db.Model): __tablename__ = "bet365s" id = db.Column(db.Integer, primary_key=True) sports = db.Column(db.Float) casino = db.Column(db.Float) poker = db.Column(db.Float) game
class Bet365(db.Model):
__tablename__ = "bet365s"
id = db.Column(db.Integer, primary_key=True)
sports = db.Column(db.Float)
casino = db.Column(db.Float)
poker = db.Column(db.Float)
games_bingo = db.Column(db.Float)
total = db.Column(db.Float)
withdrawal = db.Column(db.Float)
balance = db.Column(db.Float)
def __init__(self, sports, casino, poker, games_bingo, total, withdrawal, balance):
self.id = id
self.sports = sports
self.casino = casino
self.poker = poker
self.games_bingo = games_bingo
self.total = total
self.withdrawal = withdrawal
self.balance = balance
这是负责插入数据的代码段
@app.route('/testing/')
def testing():
data_bet365 = bet365_scrapping()
sports = float(data_bet365[0])
casino = float(data_bet365[1])
poker = float(data_bet365[2])
games_bingo = float(data_bet365[3])
total = float(data_bet365[4])
withdrawal = float(data_bet365[5])
balance = float(data_bet365[6])
result_bet365 = Bet365(sports, casino, poker, games_bingo, total, withdrawal, balance)
db.session.add(result_bet365)
db.session.commit()
return (jsonify(data_bet365))
当我运行这个脚本时,我得到一个类似这样的错误
sqlalchemy.exc.ProgrammingError
sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) can't adapt type 'builtin_function_or_method'
[SQL: 'INSERT INTO bet365s (id, sports, casino, poker, games_bingo, total, withdrawal, balance) VALUES (%(id)s, %(sports)s, %(casino)s, %(poker)s, %(games_bingo)s, %(total)s, %(withdrawal)s, %(balance)s)']
[parameters: {'withdrawal': 0.0, 'id': <built-in function id>, 'sports': -29.94, 'total': 593.75, 'casino': 464.22, 'poker': 14.29, 'games_bingo': 145.17, 'balance': 593.75}]
sqlalchemy.exc.ProgrammingError
sqlalchemy.exc.ProgrammingError:(psycopg2.ProgrammingError)无法适应类型“内置函数”或“方法”
[SQL:'插入bet365s(id、体育、赌场、扑克、游戏、宾果、总计、取款、余额)值(%(id)s、%(体育)、(%(赌场)s、%(扑克)、(%(游戏、宾果)、(%(总计)、(%(取款)s、%(余额)')]
[参数:{'drawing':0.0,'id':,'sports':-29.94,'total':593.75,'casino':464.22,'poker':14.29,'games_bingo':145.17,'balance':593.75}]
我找不到解决办法。请帮助我。问题似乎出在您的列类型上。您正在尝试将浮点插入整数列。我不会将
id
用作类属性名称。您正在将id
全局函数分配给初始值设定项中的self.id
,这是回溯的原因 谢谢你的回复。请再看一看。我已经更新了我的问题。很抱歉打扰您。啊,看起来您试图在ID列中插入空值。这应该是一个自动生成的字段。