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

In PyParsing, how to setParseAction on a delimitedList to convert it to a Python list

我正在尝试使用 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) .

如何 post 处理结果使其成为列表?

转换为答案 PaulMcG 的评论,result.asDict() 产生了期望的结果。