summaryrefslogtreecommitdiff
path: root/pecan/jsonify.py
diff options
context:
space:
mode:
Diffstat (limited to 'pecan/jsonify.py')
-rw-r--r--pecan/jsonify.py13
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)