jsonstruct
jsonstruct copied to clipboard
Does not work with python3 due to types.ClassType in utils.py:39
Same problem here. How to reproduce: just follow the steps as provided in the wiki. Here's a copy of it
import jsonstruct
# Create sample classes
class Address(object):
city = ""
province = ""
class Developer(object):
name = ""
title = ""
address = Address()
safe_houses = [Address()] # Indicates a list of Addresses.
work_locations = {"": Address()} # Indicates a dict of Addresses.
language_set = set([""]) # Indicates a set of str.
d = Developer()
d.name = "Bob"
d.title = "Developer"
d.address = Address()
d.address.city = "Toronto"
d.address.province = "Ontario"
d.safe_houses = [Address(), Address()]
d.safe_houses[0].city = "Secret"
d.safe_houses[1].city = "Middle of nowhere"
d.work_locations = {"Company": Address()}
d.work_locations["Company"].city = "Markham"
d.work_locations["Company"].province = "Ontario"
d.language_set = set(["en", "fr"])
j = jsonstruct.encode(d)
At the last call you get
>>> j = jsonstruct.encode(d)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/wouter/Desktop/ff/venv/lib/python3.8/site-packages/jsonstruct/__init__.py", line 115, in encode
return json.encode(j.flatten(value))
File "/Users/wouter/Desktop/ff/venv/lib/python3.8/site-packages/jsonstruct/pickler.py", line 110, in flatten
flatten_func = self._get_flattener(obj) if not max_reached else repr
File "/Users/wouter/Desktop/ff/venv/lib/python3.8/site-packages/jsonstruct/pickler.py", line 142, in _get_flattener
if util.is_type(obj):
File "/Users/wouter/Desktop/ff/venv/lib/python3.8/site-packages/jsonstruct/util.py", line 39, in is_type
return type(obj) is type or type(obj) is types.ClassType
AttributeError: module 'types' has no attribute 'ClassType'