將字典的字串表示形式轉換為字典
通常,我們可能需要轉換字典的字串表示形式,就像給字典定的那樣下面,進入實際的字典。
s = "{'muffin' : 'lolz', 'foo' : 'kitty'}"
最好避免使用 eval 進行此類轉換,因為出於安全考慮。這裡有一些更安全的替代方案:
使用ast.literal_eval:
Python 的ast 模組提供了一個名為literal_eval 的便捷函數,它是專門為函數安全地評估表達式字串而設計的。
import ast dict_from_string = ast.literal_eval("{'muffin' : 'lolz', 'foo' : 'kitty'}")
此方法只允許對文字和簡單表達式進行求值,使其比eval.
ast.literal_eval 的優點:
與eval 不同,ast.literal_eval 將計算限制為一組有限的Python文字,從而防止與以下內容相關的潛在安全風險任意程式碼執行。
以上是如何安全地將字典的字串表示形式轉換為 Python 字典?的詳細內容。更多資訊請關注PHP中文網其他相關文章!