问题
由于 restful 风格接口的流行,现在的前后端分离项目后端所提供的接口返回通常是 json 格式的数据,如果用 python requests 库获取到 json 数据做处理的话,还需要转换成 python 字典对象,在 python3.5 之前的版本字典中的元素是无序的,如果需要将 json 数据转换成 python 字典对象时保持原来的返回的数据顺序不变,那么该如何解决呢?
解决方案
方法一
如果使用的是 python3.5 之前的版本,可以将 python 升级到 3.5 以后的版本
方法二
如果不想变更 python 的版本,那么可以使用 collections
库中的有序字典:OrderedDict
,在使用 json()
和 json.loads()
将 json 转换成 python 字典对象时,加上参数 object_pairs_hook=OrderedDict
即可:
from collections import OrderedDict
result.json(object_pairs_hook=OrderedDict)
json.loads(json_str, object_pairs_hook=OrderedDict)