>>> 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
Run Code Online (Sandbox Code Playgroud)
怎么修?
Jon*_*ric 12
ast.literal_eval()只接受包含有效Python文字结构的字符串(字符串,数字,元组,列表,dicts,布尔值和None).
这是一个有效的Python表达式,只包含那些文字结构:
["Small", "Medium", "Large", "X-Large"]
Run Code Online (Sandbox Code Playgroud)
这不是:
[Small, Medium, Large, X-Large]
Run Code Online (Sandbox Code Playgroud)
有两种方法可以创建一个有效的字符串:
string = '["Small", "Medium", "Large", "X-Large"]'
string = "['Small', 'Medium', 'Large', 'X-Large']"
Run Code Online (Sandbox Code Playgroud)
您的字符串不是有效的列表。如果它是字符串列表,则需要引号。
例如:
string = '["Small", "Medium", "Large", "X-Large"]'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5788 次 |
| 最近记录: |