Спасибо, Пол, вы действительно расширили мое понимание pyparsing в целом.
ользую pyparsing для создания словарей, которые добавляются в список. Когда я делаю это, словари включаются в дополнительный список, а также добавляется пустой словарь. Я понятия не имею, как это исправить. Что я хочу это[{},{},{}]
, я осознаю[([{}],{})]
Почему код из getDict дает мне то, что я хочу, а не getDictParse?
#! /usr/bin/env python
from pyparsing import Literal, NotAny, Word, printables, Optional, Each, Combine, delimitedList, printables, alphanums, nums, White, OneOrMore, Group
noParseList = []
parseList = []
def getDict():
return {'duck':'moose','cow':'ewe'}
def getDictParse(str, loc, toks):
return {'duck2':toks[0],'cow2':'ewe'}
parser = Word(alphanums)
parser.setParseAction(getDictParse)
parseList.append(parser.parseString("monkey"))
noParseList.append(getDict())
print noParseList
print parseList
Выходы:
[{'cow': 'ewe', 'duck': 'moose'}]
[([{'cow2': 'ewe', 'duck2': 'monkey'}], {})]