Python object > JSON  > object requires type information to be serialized.

Jsonpickle is two-way; with support for numpy, pandas, JS, datetimes,
UUIDs, and IDK about e.g. complex fractions
https://github.com/jsonpickle/jsonpickle

JSONLD can specify type information in a space-efficient way with @context
(rather than having to specify e.g. @type=xsd:boolean for every boolean
value)
JSONLD includes @type URIs that can be e.g. XSD datatypes or
https://schema.org types.

- JSON is an ECMA spec.
- jsonpickle has a python and a js implementation
- JSON5 is an unofficial spec with many implementations
- JSONLD 1.1 is a W3C candidate recommendation with many implementations
(pyld, rdflib-jsonld, )

In order to optionally serialize to any of {JSON, JSON5, JSONLD,
JSON_future}, we could:

A) accept an optional parameter on a __json__ method: __json__(obj,
spec=None)

B) establish a convention for registering functions to call with
singledispatch in a default method

?) Other ideas?

On Mon, Apr 6, 2020, 12:22 PM 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. Just because we can't fully solve a problem, it doesn't mean we
> shouldn't attempt to solve (or provide a more convenient to solve) half of
> it.
>
> ---
> Dan Cojocaru
> On 6 Apr 2020, 19:02 +0300, Christopher Barker <python...@gmail.com>,
> wrote:
>
> On Mon, Apr 6, 2020 at 8:27 AM Wes Turner <wes.tur...@gmail.com> wrote:
>
>> This thread discusses a __json__ encoder protocol:
>>
>> "adding support for a "raw output" in JSON serializer"
>>
>> https://mail.python.org/archives/list/python-ideas@python.org/thread/WT6Z6YJDEZXKQ6OQLGAPB3OZ4OHCTPDU/
>>
>
> and a numbe rof other issues :-)
>
> This would be a really good time for someone to go through this list and
> maybe others), and summarize all the discussions around __json__
>
> FWIW, the idea of a __json__ protocol has support, but it's not clear to
> me if there wasn't interest by core devs, or if it's just that no one has
> cleaned the discussion up and made it into a clean proposal to be
> considered.
>
> Note that there IS notable overhead to adding a new dunder like that --
> there will be (legitimate) resistance.
>
> > JSON5 allows things like ±inf and nan.
>
> For my part, I would REALLY like to see the stdlib json module support
> JSON5 -- it better matches Python. (inf, comments, and trailing commas --
> ALL things I really miss with JSON)
>
> Second on my list would be support for Decimal, as that matches teh JSON
> data model (nothing in there about binary floating point).
>
> As for __json__ -- I get it, but I think I'm -0.5: because it's a one way
> street -- of you want to go from custom object => JSON, iot's great, but
> the other way doesn't work, so you'll need to do SOMETHING custom there
> anyway. So having the JSON module fully support a mapping between the JSON
> types and Python seems enough to me.
>
> -CHB
>
>
>
> --
> Christopher Barker, PhD
>
> Python Language Consulting
>   - Teaching
>   - Scientific Software Development
>   - Desktop GUI and Web Development
>   - wxPython, numpy, scipy, Cython
>
> _______________________________________________
> 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/JYQTHWN7XAANVZ6XFP7YR5LT5ISOHCTU/
> Code of Conduct: http://python.org/psf/codeofconduct/
>
_______________________________________________
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/KNJQ3NSLV42VINXGZQYY3EKR5G7RKCJ4/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to