Added AnyJSON to json format system

This commit is contained in:
Kenneth Reitz
2011-02-17 20:09:07 -05:00
parent 6f9365d376
commit d776d78df5
+7 -13
View File
@@ -3,15 +3,9 @@
""" Tablib - JSON Support
"""
try:
import json # load system JSON (Python >= 2.6)
except ImportError:
try:
import simplejson as json
except ImportError:
from tablib.packages import simplejson as json # use the vendorized copy
import tablib.core
from tablib.packages import anyjson
title = 'json'
@@ -20,26 +14,26 @@ extentions = ('json', 'jsn')
def export_set(dataset):
"""Returns JSON representation of Dataset."""
return json.dumps(dataset.dict)
return anyjson.serialize(dataset.dict)
def export_book(databook):
"""Returns JSON representation of Databook."""
return json.dumps(databook._package())
return anyjson.serialize(databook._package())
def import_set(dset, in_stream):
"""Returns dataset from JSON stream."""
dset.wipe()
dset.dict = json.loads(in_stream)
dset.dict = anyjson.deserialize(in_stream)
def import_book(dbook, in_stream):
"""Returns databook from JSON stream."""
dbook.wipe()
for sheet in json.loads(in_stream):
for sheet in anyjson.deserialize(in_stream):
data = tablib.core.Dataset()
data.title = sheet['title']
data.dict = sheet['data']
@@ -49,7 +43,7 @@ def import_book(dbook, in_stream):
def detect(stream):
"""Returns True if given stream is valid JSON."""
try:
json.loads(stream)
anyjson.deserialize(stream)
return True
except ValueError:
return False