dataclasses-json
dataclasses-json copied to clipboard
`to_dict` fails when a dict key is a tuple
from typing import List, Optional, Dict, cast, Tuple, Union
from dataclasses import dataclass, field
from dataclasses_json import DataClassJsonMixin
@dataclass
class State(DataClassJsonMixin):
foo: Dict[Tuple[str, str], str]
state = State(
foo = {('abc', 'cde'): 'efg'}
)
state.to_dict()
File "/work/ve/lib/python3.7/site-packages/dataclasses_json/api.py", line 88, in to_dict
return _asdict(self, encode_json=encode_json)
File "/work/ve/lib/python3.7/site-packages/dataclasses_json/core.py", line 321, in _asdict
value = _asdict(getattr(obj, field.name), encode_json=encode_json)
File "/work/ve/lib/python3.7/site-packages/dataclasses_json/core.py", line 331, in _asdict
obj.items())
TypeError: unhashable type: 'list'
I think rather than trying to patch this, we should throw a proper exception because tuples as keys in dictionaries is not json serializable.
@george-zubrienko wdyt?