literal_eval возвращает искаженную строку с заданной строкой без кавычек - PullRequest
0 голосов
/ 16 февраля 2019

Я пытаюсь преобразовать строку, содержащую два списка, используя literal_eval, как показано ниже.

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

Однако я получил эту ошибку

raise ValueError('malformed string')

Это потому, что ba не преобразуется в строку?Как я могу это исправить?

1 Ответ

0 голосов
/ 16 февраля 2019

Это потому, что это недопустимый набор литералов Python, который вы запрашиваете для оценки.Строка должна быть заключена в кавычки, например:

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

Тогда вы получите правильный результат:

[['ba'], [38]]
...