jsonstruct icon indicating copy to clipboard operation
jsonstruct copied to clipboard

Does not work with python3 due to types.ClassType in utils.py:39

Open nelsonsequiera opened this issue 7 years ago • 1 comments

nelsonsequiera avatar Dec 22 '17 06:12 nelsonsequiera

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'

Wouter1 avatar Apr 16 '21 07:04 Wouter1