2012-04-11 12 views
0
>>> import ast 
>>> string = '[Small, Medium, Large, X-Large]' 
>>> print string 
[Small, Medium, Large, X-Large] 
>>> string = ast.literal_eval(string) 
Traceback (most recent call last): 
    File "<pyshell#26>", line 1, in <module> 
     string = ast.literal_eval(string) 
    File "C:\Python27\lib\ast.py", line 80, in literal_eval 
     return _convert(node_or_string) 
    File "C:\Python27\lib\ast.py", line 60, in _convert 
     return list(map(_convert, node.elts)) 
    File "C:\Python27\lib\ast.py", line 79, in _convert 
    raise ValueError('malformed string') 
ValueError: malformed string 

修正方法?リストに追加するPython文字列リスト

+0

なぜdownvotes?あなたが答えを知らないと正直な質問のようです。 –

+0

@RafałRawicki彼は彼が試したことを示したと思いますよね? –

答えて

1

あなたの文字列は有効なリストではありません。それが文字列のリストであれば、引用符が必要です。

例えば:

string = '["Small", "Medium", "Large", "X-Large"]' 
6

ast.literal_eval()にのみ有効なPythonのリテラルの構造(文字列、数値、タプル、リスト、dicts、ブール値、およびNone)を含む文字列を受け付けます。

これはのみのリテラルの構造を含む有効なPython式である:

["Small", "Medium", "Large", "X-Large"] 

はこれではありません。作品の文字列を作成するには、

[Small, Medium, Large, X-Large] 

二つの方法:

string = '["Small", "Medium", "Large", "X-Large"]' 
string = "['Small', 'Medium', 'Large', 'X-Large']" 
関連する問題