I have never used this module. But I knew about it. I have just tried it.
import jsonpickle members = set(['Dallas - Captain', 'Kane - Executive Officer', 'Ellen Ripley - Warrant Officer', 'Ash - Science Officer', 'Lambert - Navigator', 'Parker - Chief Engineer', 'Brett - Engineering Technician']) doomed = {'name': 'USCSS Nostromo', 'crew number': 7, 'crew members': members} type(doomed['crew members']) Out[4]: set serialized = jsonpickle.encode(doomed) serialized Out[6]: '{"crew members": {"py/set": ["Lambert - Navigator", "Ash - Science Officer", "Ellen Ripley - Warrant Officer", "Kane - Executive Officer", "Parker - Chief Engineer", "Brett - Engineering Technician", "Dallas - Captain"]}, "crew number": 7, "name": "USCSS Nostromo"}' data = jsonpickle.decode(serialized) data Out[8]: {'crew members': {'Ash - Science Officer', 'Brett - Engineering Technician', 'Dallas - Captain', 'Ellen Ripley - Warrant Officer', 'Kane - Executive Officer', 'Lambert - Navigator', 'Parker - Chief Engineer'}, 'crew number': 7, 'name': 'USCSS Nostromo'} type(data['crew members']) Out[9]: setSo, it works. I can see at out[8] that 'crew members' holds a set.