出于某种原因,我使用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版本和数据库引擎,但我不认为是这样。
帮助!
答案 0 :(得分:1)
将返回的数据存储在字典中,当您打印字典时,您会以随机顺序获得结果。使用以下代码段正确打印字典:
for key in sorted(r.keys()):
print(key, r[key])
如果你使用OrderedDict python会记住你输入密钥的顺序。