2013-10-17 77 views
-2

我希望將以下字符串轉換爲不使用eval的Python列表。如何使用eval(Python)將字符串轉換爲列表

"[['age', '>=', 30], ['age', '<', 36]]" 

輸出應該是這樣的:

['age', '>=', 30] >> list position -[0] 
['age', '<', 36] >> list position -[1] 
+2

「不允許進口」那是由一個家庭作業或您正在嘗試使用一種工具強加的限制(如想要一個Python腳本編寫腳本的一些應用程序?)。無論哪種方式,請更新您的問題以反映您的具體要求。 – SingleNegationElimination

回答

5

嘗試ast.literal_eval()

import ast 
x = ast.literal_eval("[['age', '>=', 30], ['age', '<', 36]]") 
print x 
print type(x) 

運行此腳本顯示:

[['age', '>=', 30], ['age', '<', 36]] 
<type 'list'> 

ast.literal_eval()是一種安全eval()只能評估諸如字符串,列表,元組,數字和布爾值等文字。

來源:http://docs.python.org/dev/library/ast.html#ast.literal_eval

+0

感謝不可能, – john

+0

感謝Impossibility, 基於我們的應用程序,我們不能使用python正則表達式和ast功能。由於我們的應用程序不允許導入任何類以及不允許編寫函數。 謝謝 – john

相關問題