微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

json字符串转list顺序变了

近日,在进行json字符串转list的过程中,发现了一个令人困惑的问题,就是转换后list的顺序发生了一些变化。下面我们一起来探究一下这个问题。

json字符串转list顺序变了

首先,我们先看一下json字符串转list的代码

import json

json_str = '{"name": "小明","age": 18,"gender": "男"}'
dict_data = json.loads(json_str)
list_data = list(dict_data.values())

print(list_data)

以上代码输出结果应该为:

[18,'男','小明']

然而,在实际运行中,有时候输出的结果顺序会变成:

['男',18,'小明']

这是为什么呢?其实,这和Python中的字典有关。

在Python 3.7版本及以前,字典的顺序是随机的。而在Python 3.7版本及以后,字典会保留插入顺序,也就是说,当我们将一个字典转换成list时,输出的顺序就是该字典中key对应的value的顺序。

因此,如果我们想要保留顺序,可以采用collections模块中的OrderedDict类来代替字典。

下面是使用OrderedDict类的代码

from collections import OrderedDict
import json

json_str = '{"name": "小明","gender": "男"}'
dict_data = json.loads(json_str,object_pairs_hook=OrderedDict)
list_data = list(dict_data.values())

print(list_data)

以上代码输出的结果为:

['小明','男']

通过使用OrderedDict类,我们成功地保留了字典的顺序,从而解决了json字符串转list顺序变了的问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐