字符串轉字典:從多個角度詳解

一、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/zh-hk/n/285085.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-22 15:43
下一篇 2024-12-22 15:43

相關推薦

發表回復

登錄後才能評論