7

我目前正试图从 pyparsing 中获得一个纯列表的结果,以便我可以将其展平。我在文档中读到

ParseResults 也可以通过调用 asList() 转换为普通的字符串列表。请注意,这将删除为任何嵌入的解析元素定义的任何字段名称的结果。(pprint 模块特别擅长打印出由 asList() 给出的嵌套内容。)

所以我尝试定义一个setParseAction我在 ParseResult 上工作的地方

我得到的是:

>>> print type(tokens.args[0])
 <class 'pyparsing.ParseResults'>
>>> print type(tokens.args[0].asList)
 <type 'instancemethod'>

但我期待/需要最后一个是列表类型。在这里使用时,我一定遗漏了一些重要的东西asList()

迪特马尔

PS:这里是代币实际外观的 MTC:

>>> print tokens.args[0]
['foo1', ['xxx'], ',', 'graphics={', 'bar1', ['xxx,yyy'], ',', 'bar2', 
['xxx,yyy'], ',', 'bar3', ['xxx,yyy,', 'zzz=baz', ['xxx,yyy']], '}']
4

2 回答 2

9

tokens.args[0].asList是一个函数。tokens.args[0].asList()是对该函数的调用(除了参数没有self参数)。您似乎想知道后一种表达式的类型。

于 2012-05-10T12:31:36.157 回答
5

你能试一下吗

 print type(tokens.args[0].asList())
于 2012-05-10T12:31:43.003 回答