字符串转字典:从多个角度详解

一、split方法分割字符串

将字符串按照指定字符分隔为多个元素,再将元素逐一转换为字典的键值对

str1 = 'name=Tom,age=20,gender=male'
dict1 = {}
lst1 = str1.split(',')
for item in lst1:
    temp = item.split('=')
    dict1[temp[0]] = temp[1]

print(dict1)
# 输出:{'name': 'Tom', 'age': '20', 'gender': 'male'}

使用split方法先将字符串按照逗号’,’进行切分,得到一个存储元素的列表lst1。再遍历这个列表,用等号’=’将每个元素分割成2个字符串,分别作为字典的键和值并存储起来。

二、eval方法求值

将字符串转化为Python表达式,并执行这个表达式得到字典类型的结果

str2 = "{'name': 'Jerry', 'age': 18, 'gender': 'male'}"
dict2 = eval(str2)
print(dict2)
# 输出:{'name': 'Jerry', 'age': 18, 'gender': 'male'}

将字符串str2以花括号括起来表示一个字典,使用eval方法将这个字符串转化为Python表达式并计算,得到一个字典类型的结果。

三、json库解析

使用Python中的json库,将json格式的字符串转化为字典

import json

str3 = '{"name": "Lucy", "age": 25, "gender": "female"}'
dict3 = json.loads(str3)
print(dict3)
# 输出:{'name': 'Lucy', 'age': 25, 'gender': 'female'}

将字符串str3作为参数传入json.loads方法,得到一个字典类型的结果。需要注意的是,json格式要求使用双引号表示字符串的引号,因此在str3中需要使用双引号进行表示。

四、字典推导式生成字典

使用Python中的字典推导式,以列表中的字符串为元素,对其进行处理得到字典类型的结果

lst4 = ['name=Jack', 'age=30', 'gender=male']
dict4 = {item.split('=')[0]: item.split('=')[1] for item in lst4}
print(dict4)
# 输出:{'name': 'Jack', 'age': '30', 'gender': 'male'}

使用列表lst4中的每个元素作为字符串,使用split方法将这个字符串按照等号’=’切分,得到2个字符串。然后使用字典推导式将键值对组成字典dict4。

五、re正则表达式解析字符串

使用Python中的re模块,通过匹配正则表达式将字符串解析成字典

import re

str5 = 'name=Tom,age=20,gender=male'
dict5 = {}
lst5 = re.findall(r'(\w+)=(\w+)', str5)
for item in lst5:
    dict5[item[0]] = item[1]

print(dict5)
# 输出:{'name': 'Tom', 'age': '20', 'gender': 'male'}

使用re模块中的findall方法,按照正则表达式'(\w+)=(\w+)’从字符串str5中匹配所有符合模式的字符串,得到一个列表lst5。再遍历列表lst5,将每个元素分别作为字典的键值对进行存储。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/285085.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝的头像小蓝
上一篇 2024-12-22 15:43
下一篇 2024-12-22 15:43

相关推荐

发表回复

登录后才能评论