def _encode_dictionary(dictionary): content='' for key in sorted(dictionary.keys()): if isinstance(key,(StringType,StringTypes)): content+=(encode(key)+encode(dictionary[key])) else: raise InvalidData(key,"dictionary keys must be strings") return 'd%se' %content