一、eval()和json.loads()
-
eval():把字符串数据类型转换成原本数据类型
-
json.loads():把json化的字符串转换成对应的python对象(诸如dict/list/tuple/string等数据结构)(解码)
对于eval()函数,若需要转换的字符串中的数据是个列表,eval()转换后,数据类型即为列表
str='[1,2,3,4,5,6]'
eval_dict=eval(str)
print(eval_dict,type(eval_dict))
输出结果:
[1, 2, 3, 4, 5, 6] <class 'list'>
eval()将str转化为dict时:
标准的json串中,键值都是用双引号的,例如:
{ "authorBlogUrl": "https://blog.csdn.net/XXX","dateTime": "2022-03-02 14:37:02","title": "HTTP请求报文(请求行、请求头、请求体)"}
1、键值都只使用了双引号的json串
如果字符串中json数据用的都是用双引号,那使用json.loads()和eval()都能达到将该字符串转换为字典的效果:
str='{"name":["张三","李四","王二麻子"]}'
load_dict=json.loads(str)
eval_dict=eval(str)
print(load_dict,type(load_dict))
print(eval_dict,type(eval_dict))
输出结果:
{'name': ['张三', '李四', '王二麻子']} <class 'dict'>
{'name': ['张三', '李四', '王二麻子']} <clas