SqlAlchemy排序问题

时间:2017-06-01 16:34:58

标签: python sqlalchemy

出于某种原因,我使用SqlAlchemy进行自定义查询:

sql = "SELECT id, shooter_id, value FROM points WHERE match_id = %s ORDER BY value" % match_id
rows = self._session.execute(sql).fetchall()
for (shooter_id, value) in rows:
  r[shooter_id] = value

通过此查询,我获得了这些数据:

1 100 5.5
3 101 6.4
2 121 8.2

对于使用Windows,Python 3.6.0和MariaDb的开发PC而言,这并不是什么大问题。但是当我使用Python 3.4.2将应用程序部署到debian jessie并且Mysql出现问题时:数据停止排序。换句话说,我得到了:

1 100 5.5
2 121 8.2
3 101 6.4

未排序!

所有的库都是相同的版本,我不知道在哪里解决这个问题。好的,我有不同的pyton版本和数据库引擎,但我不认为是这样。

帮助!

1 个答案:

答案 0 :(得分:1)

将返回的数据存储在字典中,当您打印字典时,您会以随机顺序获得结果。使用以下代码段正确打印字典:

for key in sorted(r.keys()):
    print(key, r[key])

如果你使用OrderedDict python会记住你输入密钥的顺序。