On Apr 6, 2020, at 09:22, Dan Cojocaru <dan.cojocar...@e-uvt.ro> wrote:
> 
> 
> Addressing your last concern, about __json__ being only class -> JSON, not 
> JSON -> class, classes implementing __str__ only go class -> str, not str -> 
> class.

Sure, but str is inherently one-way. There’s no unambiguous mapping from 
human-readable text to data.

That’s not true for JSON; the entire point of it is data interchange. You 
expect to be able to dump an object, send it over the wire or store it to a 
file, load it (or even parse it in JS or ObjC or Go or whatever) and get back 
an equivalent object. It’s easy to come up with ways to build on top of JSON to 
interchange things like time points or raw binary strings or higher-level 
structured objects, but they require doing something on both the encode side 
and the decode side. Just being able to encode them to something human-readable 
is useless—if I encode a datetime object, I need to get back a datetime (or 
Date or NSDate or whatever) on the other end, not a str (or string or NSString 
or whatever) that a human could tell is probably meant to be a datetime but 
will raise an exception when I try to subtract it from now().

(Of course JSON isn’t perfect, as anyone who’s tried to interchange, say, int64 
values discovers… but it’s good enough for many applications.)

_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/75MERXNMJGUUPJXHPRHHSZFSL4K4UGSH/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to