def decode_unicode_obj(obj):
 if isinstance(obj, dict):
  r = {}
  for (k, v) in iteritems(obj):
   r[decode_unicode_string(k)] = decode_unicode_obj(v)
  return r
 elif isinstance(obj, six.string_types):
  return decode_unicode_string(obj)
 elif isinstance(obj, (list, tuple)):
  return [decode_unicode_obj(x) for x in obj]
 else:
  return obj

def decode_unicode_obj ( obj ) : if isinstance ( obj , dict ) : r = { } for ( k , v ) in iteritems ( obj ) : r [ decode_unicode_string ( k ) ] = decode_unicode_obj ( v ) return r elif isinstance ( obj , six . string_types ) : return decode_unicode_string ( obj ) elif isinstance ( obj , ( list , tuple ) ) : return [ decode_unicode_obj ( x ) for x in obj ] else : return obj
decode unicoded dict/list/tuple encoded by unicode_obj .