首頁 >後端開發 >Python教學 >如何安全地將字典的字串表示形式轉換為 Python 字典?

如何安全地將字典的字串表示形式轉換為 Python 字典?

DDD
DDD原創
2024-12-29 06:08:11832瀏覽

How Can I Safely Convert a String Representation of a Dictionary to a Python Dictionary?

將字典的字串表示形式轉換為字典

通常,我們可能需要轉換字典的字串表示形式,就像給字典定的那樣下面,進入實際的字典。

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn