Python MySQLdb返回sam上的可变行数

2024-03-28 14:29:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做一个项目,但我有点困在一个奇怪的问题。我从外部API中提取数据,并用Python脚本将其保存到自己的SQL数据库中。在提取数据之后,我检查它是否已经存在于我的数据库中。我使用以下代码段执行此操作:

def getDatabaseMatchesForSummoner(summonerId):
    sqlSelect = 'SELECT gameId FROM playerMatchHistory WHERE playerId=%s'
    try:
        cur.execute(sqlSelect,(summonerId,))
        db.commit()
    except MySQLdb as e:
        db.rollback()
        print e
    gameIds = []
    print cur.rowcount
    for i in range(cur.rowcount):
        gameIds += [str(cur.fetchone()[0])]
    return gameIds

现在的问题是:这段代码倾向于返回大量与实际数据库不一致的行。例如,对于一个特定的召唤者ID,它返回7行,而如果我在phpMyAdmin中输入查询,则返回10行,即正确的数量。我已经找了几个小时了,我真的找不出有什么问题。我尝试了其他一些东西,比如fetchall(),其他字符串格式,等等。我真的希望有人能指出问题所在


Tags: 数据项目脚本api数据库dbsqldef