Python-ast.literal_eval()的结果不符合顺序
使用ast.literal\u eval()函数时,我的字典的顺序发生了更改。 下面是我的节目,Python-ast.literal_eval()的结果不符合顺序,python,python-2.7,Python,Python 2.7,使用ast.literal\u eval()函数时,我的字典的顺序发生了更改。 下面是我的节目, dicty="{'@#$':'Please enter a valid Email Address.','testuser1009131@,$%^*&@!$)(:;gmail.com':'Please enter a valid Email Address.','am@am.pm':'None'}" dictionary=ast.literal_eval(dicty) print dicti
dicty="{'@#$':'Please enter a valid Email Address.','testuser1009131@,$%^*&@!$)(:;gmail.com':'Please enter a valid Email Address.','am@am.pm':'None'}"
dictionary=ast.literal_eval(dicty)
print dictionary
我的输出:
{'testuser1009131@,$%^*&@!$)(:;gmail.com': 'Please enter a valid Email Address.', 'am@am.pm': 'None', '@#$': 'Please enter a valid Email Address.'}
预期产出:
{'@#$':'Please enter a valid Email Address.','testuser1009131@,$%^*&@!$)(:;gmail.com':'Please enter a valid Email Address.','am@am.pm':'None'}
python字典没有排序。。。不幸的是,要将其整理好,您需要编写自己的解析器或将输入格式转换为
json
,在这里您可以通过json进行解析。加载并提供object\u pairs\u hook=collections.OrderedDict
…Dicts仅表示“此键是否有关联的值”和“如果有,是什么值?”。它们不表示它们存储的键值关联的任何排序。在Python2.7中确认了这种行为,但是这个python版本很快就会贬值。而且,我在Python3.6上进行了测试,输入的顺序是保留的。python字典没有顺序。。。不幸的是,要将其整理好,您需要编写自己的解析器或将输入格式转换为json
,在这里您可以通过json进行解析。加载并提供object\u pairs\u hook=collections.OrderedDict
…Dicts仅表示“此键是否有关联的值”和“如果有,是什么值?”。它们不表示它们存储的键值关联的任何排序。在Python2.7中确认了这种行为,但是这个python版本很快就会贬值。而且,我在Python3.6上进行了测试,输入的顺序是保留的。