我希望將JSON響應的輸出與我定義的字典進行比較。字典和JSON對象沒有排序。Python:在比較它們之前我需要對Dictionary進行排序嗎?
從我自己的測試,與此JSON響應存儲爲res.data
{
"message": "Staff name and password pair not match",
"errors": {
"resource": "Login",
"field": "staff_authentication",
"code": "invalid",
"stack_trace": null
}
}
我沒有找到anything that refers to Dictionary comparison operator in Python documentation。我閱讀過有關從JSON字符串中加載的字典排序的文章,但是從我自己的測試中可以看出,比較運算符無需排序即可正確運行。 而與此不同的比較有序字典,將導致True
invalid_password_json = dict(
errors=dict(
resource="Login",
code="invalid",
field="staff_authentication",
stack_trace=None,),
message="Staff name and password pair not match",
)
assert json.loads(res.data, object_pairs_hook=OrderedDict) == invalid_password_json
我需要使用json.dumps(my_password, sort_keys=True)
或json.loads(res.data, object_pairs_hook=OrderedDict))
保證比較之前的順序?