Вы должны использовать модуль для синтаксического анализа структурированного текста, например, pyparsing. В основном грамматика должна выглядеть следующим образом:
import pyparsing as pp
s = u'[<Word: colors>, <Word: red>, <Word: blue>, <Word: yellow>, <Word: green>, <Word: orange>, <Word: purple>, <Word: brown>, <Word: white>, <Word: black>, <Word: grey>]'
term = pp.Literal('<') + pp.Literal('Word') + pp.Literal(':') + pp.Word(pp.alphas) + pp.Literal('>')
expr = pp.Literal('[') + term + pp.ZeroOrMore(pp.Literal(',') + term) + pp.Literal(']')
r = expr.parseString(s)
, а затем получить результаты разбора из r
. Проверьте примеры на сайте проекта. Возможно, вам необходимо установить конкретные парсер обратные вызовы на элементы, которые вы хотите извлечь, используя setParseAction():
import pyparsing as pp
s = u'[<Word: colors>, <Word: red>, <Word: blue>, <Word: yellow>, <Word: green>, <Word: orange>, <Word: purple>, <Word: brown>, <Word: white>, <Word: black>, <Word: grey>]'
colors = []
term = pp.Literal('<') + pp.Literal('Word') + pp.Literal(':') + pp.Word(pp.alphas).setParseAction(lambda s: colors.append(s[0])) + pp.Literal('>')
expr = pp.Literal('[') + term + pp.ZeroOrMore(pp.Literal(',') + term) + pp.Literal(']')
r = expr.parseString(s)
colors
Теперь содержит список цветов и так далее ...
Строка? ' "[<Слово: цвета>,, , <Слово: желтый>, <Слово: оранжевый>, <Слово: фиолетовый>, , , , ] "' –
iMom0
Да, это было первоначально список объектов, но, пройдя через HTML, он возвращается так же, но, будучи строкой unicode – Sascuash
, я думаю, вы должны посмотреть на нее с другого конца и сделать так, чтобы строка, которую вы получили в POST, работайте с. – RemcoGerlich