pyparsing: crash on empty element
gry at ll.mit.edu
gry at ll.mit.edu
Mon Mar 6 15:58:05 EST 2006
[python 2.3.3, pyparsing 1.3]
I have:
def unpack_sql_array(s):
# unpack a postgres "array", e.g. "{'w1','w2','w3'}" into a
list(str)
import pyparsing as pp
withquotes = pp.dblQuotedString.setParseAction(pp.removeQuotes)
withoutquotes = pp.CharsNotIn('",{}')
parser = pp.StringStart() + \
pp.Literal('{').suppress() + \
pp.delimitedList(withquotes | withoutquotes) + \
pp.Literal('}').suppress() + \
pp.StringEnd()
return parser.parseString(s).asList()
which works beautifully, except on the input: "{}". How can I neatly
modify the parser to return an empty list in this case?
Yes, obviously, I could say
if s=='{}': return []
It just seems like I'm missing some simple intrinsic way to get this
out of the parser. I am hoping to become more skillful in using the
wonderful pyparsing module!
-- George Young
More information about the Python-list
mailing list