3

私は文字列を持っています:

s= "[7, 9, 41, [32, 67]]"

その文字列をリストに変換する必要があります。

l= [7, 9, 41, [32, 67]]

問題は、リストを使用すると次のようになることです。

['[', '7', ',', ' ', '9', ',', ' ', '4', '1', ',', ' ', '[', '3', '2', ',', ' ', '6', '7', ']', ']']

私はpython 3.2を使用しています

4

6 に答える 6

4

を使用して、要求したことを正確に実行できますast.literal_eval()

>>> ast.literal_eval("[7, 9, 41, [32, 67]]")
[7, 9, 41, [32, 67]]

ただし、Python オブジェクトの文字列表現に依存するのではなく、JSON のような適切なシリアル化形式を最初から使用することをお勧めします。(補足として、この特定のオブジェクトの JSON 表現は Python の文字列表現と同じに見えるため、あなたが持っている文字列は JSON でさえあるかもしれません。この文字列を取得します。)

于 2012-09-16T14:26:07.760 に答える
2

モジュールを使用してください。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]]
于 2012-09-16T14:25:48.557 に答える
2

使用したいast.literal_eval

import ast
s= "[7, 9, 41, [32, 67]]"
print ast.literal_eval(s)
# [7, 9, 41, [32, 67]]
于 2012-09-16T14:25:51.790 に答える
0

使用: パッケージ ast: 関数 :literal_eval(node_or_string)

http://docs.python.org/library/ast.html#module-ast

于 2012-09-16T15:24:08.347 に答える