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

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

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-23 12:11:19458瀏覽

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

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

在Python中,通常需要轉換字典的字串表示形式,例如下面的字串表示形式, 代入其對應的字典:

s = "{'muffin' : 'lolz', 'foo' : 'kitty'}"

避免使用'eval'

雖然可以使用 'eval' 函數來計算字串表達式,但不鼓勵使用此方法,因為安全性問題。 'eval' 執行任意程式碼,增加了漏洞的風險。

更安全的替代方案

要安全地轉換字串字典,請考慮使用內建的 'ast.literal_eval ' 功能。 'ast.literal_eval' 專門設計用於計算文字 Python 表達式,例如字典、元組、列表等的字串表示形式。

範例

import ast
ast.literal_eval("{'muffin' : 'lolz', 'foo' : 'kitty'}")

輸出:

{'muffin': 'lolz', 'foo': 'kitty'}

的好處'ast.literal_eval'

    的好處'ast.literal_eval'

🎜>安全性:僅計算文字表達式,防止惡意程式碼執行。 多功能性:不僅可以計算字典,還可以計算列表、元組、和其他 Python 文字結構。 與 'eval' 相比, 'ast.literal_eval' 提供了一種更安全、更受控制的方法來將字典或其他文字的字串表示形式轉換為 Python 物件。

以上是如何安全地將字典的字串表示形式轉換為 Python 中的字典?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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