【輕鬆掌握Python】字元串轉字典的5個高效方法

提問者:用戶FWJP 發布時間: 2025-05-10 02:45:21 閱讀時間: 3分鐘

最佳答案

在Python中,字元串轉字典是一個罕見的操縱,尤其是在處理JSON數據或設置文件時。以下介紹了五種高效的方法,幫助你輕鬆實現字元串到字典的轉換。

方法一:利用ast.literal_eval()

ast.literal_eval()是Python標準庫中的一個函數,用於將字元串剖析為Python表達式。它可能保險地將字元串轉換為字典。

import ast

s = '{"name": "Alice", "age": 30}'
d = ast.literal_eval(s)
print(d)  # 輸出:{'name': 'Alice', 'age': 30}

方法二:利用json.loads()

假如你的字元串是JSON格局的,那麼利用json.loads()函數將是一個高效的抉擇。這個函數是Python內置的json模塊的一部分。

import json

s = '{"name": "Alice", "age": 30}'
d = json.loads(s)
print(d)  # 輸出:{'name': 'Alice', 'age': 30}

方法三:利用eval()

eval()函數可能直接履行字元串中的Python表達式。但是,因為它可能會履行咨意代碼,因此利用時須要警惕。

s = "{'name': 'Alice', 'age': 30}"
d = eval(s)
print(d)  # 輸出:{'name': 'Alice', 'age': 30}

方法四:利用正則表達式

對簡單的字元串到字典轉換,你可能利用正則表達式來剖析字元串。這種方法實用于格局簡單的字元串。

import re

s = "name=Alice, age=30"
d = dict(re.findall(r'(\w+)=([^,]+)', s))
print(d)  # 輸出:{'name': 'Alice', 'age': '30'}

方法五:利用collections.defaultdict

假如你的字元串格局比較特別,比方鍵值對之間用特定分開符分開,可能利用collections.defaultdict來簡化剖析過程。

from collections import defaultdict

s = "name=Alice;age=30"
d = defaultdict(lambda: None)
for item in s.split(';'):
    key, value = item.split('=')
    d[key] = value
print(d)  # 輸出:defaultdict(<function <lambda> at 0x7f8c39a9c810>, {'name': 'Alice', 'age': '30'})

經由過程以上五種方法,你可能根據現真相況抉擇最合適的方法來將字元串轉換為字典。每種方法都有其實用處景,懂得這些方法可能幫助你在處理差別範例的字元串時愈加隨心所欲。

相關推薦