python将字符串转为字典(将str类型还原为dict字典类型)

有三种方法:

  1. eval(字符串)
  2. yaml.load(字符串, Loader=yaml.FullLoader)
  3. ast.literal_eval(字符串)

但是要注意,转换之前,原始的字典中key与value必须是python原生支持的类型,不能是datetimepandas这种类型

示例代码

import yaml
import ast

dict_string = str({
    "name": "小明",
    "age": 12,
    "成绩": 59.99,
    "入学时间": "2021-01-01",
})
print(dict_string)

得到字符串dict_string的结果:

'{\'name\': \'小明\', \'age\': 12, \'成绩\': 59.99, \'入学时间\': \'2021-01-01\'}'

使用如下方法将 string字符串 -> dict字典

eval(dict_string)  # 方法1
yaml.load(dict_string, Loader=yaml.FullLoader) # 方法2
ast.literal_eval(dict_string) # 方法3

都可以得到想要的结果:

{'name': '小明', 'age': 12, '成绩': 59.99, '入学时间': '2021-01-01'}

但是,如果将dict_string改为:

from datetime import datetime

dict_string = str({
    "name": "小明",
    "age": 12,
    "成绩": 59.99,
    "入学时间": datetime(2021, 1, 1),
})

则结果都会出错!

你可能感兴趣的:(python,数据处理,python,开发语言,pandas)