私は文字列を持っています:
s= "[7, 9, 41, [32, 67]]"
その文字列をリストに変換する必要があります。
l= [7, 9, 41, [32, 67]]
問題は、リストを使用すると次のようになることです。
['[', '7', ',', ' ', '9', ',', ' ', '4', '1', ',', ' ', '[', '3', '2', ',', ' ', '6', '7', ']', ']']
私はpython 3.2を使用しています
私は文字列を持っています:
s= "[7, 9, 41, [32, 67]]"
その文字列をリストに変換する必要があります。
l= [7, 9, 41, [32, 67]]
問題は、リストを使用すると次のようになることです。
['[', '7', ',', ' ', '9', ',', ' ', '4', '1', ',', ' ', '[', '3', '2', ',', ' ', '6', '7', ']', ']']
私はpython 3.2を使用しています
を使用して、要求したことを正確に実行できますast.literal_eval()
。
>>> ast.literal_eval("[7, 9, 41, [32, 67]]")
[7, 9, 41, [32, 67]]
ただし、Python オブジェクトの文字列表現に依存するのではなく、JSON のような適切なシリアル化形式を最初から使用することをお勧めします。(補足として、この特定のオブジェクトの JSON 表現は Python の文字列表現と同じに見えるため、あなたが持っている文字列は JSON でさえあるかもしれません。この文字列を取得します。)
モジュールを使用してください。ast
便利な.literal_eval()
機能があります。
import ast
l = ast.literal_eval(s)
Python プロンプトで:
>>> import ast
>>> s= "[7, 9, 41, [32, 67]]"
>>> ast.literal_eval(s)
[7, 9, 41, [32, 67]]
使用したいast.literal_eval
:
import ast
s= "[7, 9, 41, [32, 67]]"
print ast.literal_eval(s)
# [7, 9, 41, [32, 67]]
使用: パッケージ ast: 関数 :literal_eval(node_or_string)