Код: Выделить всё
import pyparsing as pp
text_block = pp.Group(
pp.OneOrMore(
pp.SkipTo(pp.LineEnd()) + pp.LineEnd().suppress(),
stopOn=pp.StringEnd() | (pp.LineStart() + (pp.Literal("E)") | pp.Literal("F)")))
)
).set_parse_action(pp.token_map(str.strip))
FAIL-EXCEPTION: TypeError: дескриптор «strip» для объектов «str»
не применяется к объекту «ParseResults»
Я заменил использование token_map функцией:
Код: Выделить всё
def _strip_whitespace(tokens):
return [token.str.strip() for token in tokens]
text_block = pp.Group(
pp.OneOrMore(
pp.SkipTo(pp.LineEnd()) + pp.LineEnd().suppress(),
stopOn=pp.StringEnd() | (pp.LineStart() + (pp.Literal("E)") | pp.Literal("F)")))
)
).set_parse_action(_strip_whitespace)
Подробнее здесь: https://stackoverflow.com/questions/786 ... rse-action