您可以编写一个高度专业的编码器和一个解码器挂钩:
import jsonclass MultiDimensionalArrayEnprer(json.JSONEnprer): def enpre(self, obj): def hint_tuples(item): if isinstance(item, tuple): return {'__tuple__': True, 'items': item} if isinstance(item, list): return [hint_tuples(e) for e in item] if isinstance(item, dict): return {key: hint_tuples(value) for key, value in item.items()} else: return item return super(MultiDimensionalArrayEnprer, self).enpre(hint_tuples(obj))def hinted_tuple_hook(obj): if '__tuple__' in obj: return tuple(obj['items']) else: return objenc = MultiDimensionalArrayEnprer()jsonstring = enc.enpre([1, 2, (3, 4), [5, 6, (7, 8)]])print jsonstring# [1, 2, {"items": [3, 4], "__tuple__": true}, [5, 6, {"items": [7, 8], "__tuple__": true}]]print json.loads(jsonstring, object_hook=hinted_tuple_hook)# [1, 2, (3, 4), [5, 6, (7, 8)]]


