python将字符串转换成字典的几种方法

当我们遇到类似于{‘a’:1, 'b':2, 'c':3}这种字符串时,想要把它转换成字典进行处理,可以使用以下几种方法:

1. Python自带的eval函数(不安全)

dictstr = '{"a":1, "b":2, "c":{"d":1}}'
mydict = eval(dictstr)

2.使用 ast 模块的 literal_eval 函数(安全)

dictstr = '{"a":1, "b":2, "c":{"d":1}}'
mydict = ast.literal_eval(dictstr)

3.使用 json 模块的 loads 函数

dictstr = '{"a":1, "b":2, "c":{"d":1}}'
mydict = json.loads(dictstr)

 使字典有序

from collections import OrderedDict
dictstr = '{"a":1, "b":2, "c":3}'
obj = json.loads(dictstr, object_pairs_hook=OrderedDict) #返回一个class对象,可继续处理

 

posted @ 2018-05-10 20:01  傲娇的草履虫  阅读(2573)  评论(0编辑  收藏  举报