literal_eval返回格式错误的字符串(给定的字符串不带引号)

时间:2019-02-16 16:45:50

标签: python python-2.7 eval literals

我尝试使用literal_eval转换包含两个列表的字符串,如下所示。

from ast import literal_eval
literal_eval('[[ba], [38]]')

但是我遇到了这个错误

raise ValueError('malformed string')

是因为'ba'未转换为字符串吗?我该如何解决?

1 个答案:

答案 0 :(得分:0)

因为这不是您要求值的有效Python文字集。字符串需要加引号,就像这样:

from ast import literal_eval
literal_eval('[["ba"], [38]]')

那么您将获得正确的结果:

[['ba'], [38]]