[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 -- http://mail.python.org/mailman/listinfo/python-list