在PyParsing中,如何在delimitedList上设置setParseAction以将其转换为Python列表

时间:2017-07-17 12:03:25

标签: python pyparsing

我正在尝试使用PyParsing将delimitedString提取为列表,如下所示:

from pyparsing import *

string = "arm + mips + x86"
pattern = delimitedList(Word(printables), delim="+")("architectures")
result = pattern.parseString(string)
print(dict(result))

问题在于打印

{'architectures': (['arm', 'mips', 'x86'], {})}

ParseResult的字符串表示形式。但是,我希望结果是一个Python列表:

{'architectures': ['arm', 'mips', 'x86']}

我已经考虑过使用setParseAction执行此操作,但我无法弄清楚如何使用该方法的API实现此目的。我实际上想将list()应用于整个ParseResult,但setParseAction函数必须将原始字符串,位置和标记作为输入(参见http://pyparsing.wikispaces.com/HowToUsePyparsing

如何对结果进行后处理以使其成为列表?

1 个答案:

答案 0 :(得分:0)

转换为答案PaulMcG的评论,result.asDict()会产生所需的结果。