我正在将一些单元测试从Python 2.7移植到Python 3.7。我遇到了失败的json比较,其结构大致如下:
d1 = json.loads('{"a": 1, "b": 2}')
d2 = json.loads('{"b": 2, "a": 1}')
assert d1 == d2
s1 = json.dumps(d1)
s2 = json.dumps(d2)
assert s1 == s2 # True in python2; False in python3.7
我以为我知道问题出在哪里,所以我用PYTHONHASHSEED=0 mytest.py
重新运行了测试,但是失败仍然存在。那使我感到惊讶;如果PYTHONHASHSEED=0
,那最后的断言不应该通过吗?