diff options
Diffstat (limited to 'pecan/jsonify.py')
-rw-r--r-- | pecan/jsonify.py | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/pecan/jsonify.py b/pecan/jsonify.py index 90f7f7a..818ce45 100644 --- a/pecan/jsonify.py +++ b/pecan/jsonify.py @@ -5,7 +5,16 @@ except ImportError: # pragma: no cover from datetime import datetime, date from decimal import Decimal -from webob.multidict import MultiDict, UnicodeMultiDict +# depending on the version WebOb might have 2 types of dicts +try: + # WebOb <= 1.1.1 + from webob.multidict import MultiDict, UnicodeMultiDict + webob_dicts = (MultiDict, UnicodeMultiDict) +except ImportError: # pragma no cover + # WebOb >= 1.2 + from webob.multidict import MultiDict + webob_dicts = (MultiDict,) + from simplegeneric import generic try: @@ -55,7 +64,7 @@ class GenericJSON(JSONEncoder): return props elif isinstance(obj, RowProxy): return dict(obj) - elif isinstance(obj, (MultiDict, UnicodeMultiDict)): + elif isinstance(obj, webob_dicts): return obj.mixed() else: return JSONEncoder.default(self, obj) |