В текущем коде, вы перебор на строку, которая представляет собой список, следовательно, вы получите отдельные символы.
>>> from ast import literal_eval
>>> l = [u'[190215]']
>>> l = [item for value in l for item in value]
>>> l
[u'[', u'1', u'9', u'0', u'2', u'1', u'5', u']']
Кажется мне, вы хотите, чтобы преобразовать внутреннее представление строки списка, в уплощенную список, так что здесь вы идете:
>>> l = [u'[190215]']
>>> l = [item for value in l for item in literal_eval(value)]
>>> l
[190215]
выше будет работать только тогда, когда все внутренние списки строк:
>>> l = [u'[190215]', u'[190216, 190217]']
>>> l = [item for value in l for item in literal_eval(value)]
>>> l
[190215, 190216, 190217]
>>> l = [u'[190215]', u'[190216, 190217]', [12, 12]]
>>> l = [item for value in l for item in literal_eval(value)]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/ast.py", line 80, in literal_eval
return _convert(node_or_string)
File "/usr/lib/python2.7/ast.py", line 79, in _convert
raise ValueError('malformed string')
ValueError: malformed string
выход, как L = [ '[190215]'] ?? –
'l' - это единственный список, состоящий из одного элемента, и этот элемент имеет тип' unicode'. Это строка, которая выглядит как '[190215]', это не список, чей элемент - номер '190215'. Можете ли вы сказать, что именно вы ожидаете от вывода? –