On Wed, Sep 16, 2020 at 12:59 AM Rob Cliffe via Python-ideas <
python-ideas@python.org> wrote:

> On 14/09/2020 17:36, Christopher Barker wrote:
>


> nstructions that are not part of the JSON spec) but the proposed new
> functions will be strict.
>

as it looks like I maybe the one to write the PR -- no, I'm not suggesting
any changes to compliance.

The only thing even remotely on the table is only supporting UTF-8 -- but
IIUC, the current functions, if they do the encoding/decoding for you, are
already UTF-8 only, so no change.

load() and dump() work with text file-like objects -- they are not doing
any encoding/decoding.

loads() is working with strings or bytes. if strings, then no encoding. if
bytes, then:

"The ``encoding`` argument is ignored and deprecated since Python 3.1"

which I figured meant utf-8 but it fact it seems to work with utf-16 as
well.

In [17]: utf16 = '{"this": 5}'.encode('utf-16')


In [18]: json.loads(utf16)

Out[18]: {'this': 5}

which surprises me. I'll need to look at the code and see what it's doing.
Unless someone wants to tell us :-)

dumps(), meanwhile, dumps a str, so gain, no encoding.

The idea here is that if you want to use loadf() or dumpf(), it will be
utf-8, and if you want to use another encoding, you can open the file
yourself and use load() or dump()


> To minimise possible confusion, I think that the documentation (both the
> docstrings and the online docs) should be **very clear** about this.
>

Yes, and they need some help in that regard now anyway.

-CHB



> E.g.
> loads:
>     ...
>     loads accepts blah-blah-blah.  This is different from loadf which only
> accepts strict JSON.
>
> loadf:
>     ...
>     loadf only accepts strict JSON.  This is different from loads which
> blah-blah-blah
>
> Etc.
> Rob Cliffe
> _______________________________________________
> 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/ABQKK6GSK33I2XBJK4VK4RUEUAQ3HDVV/
> Code of Conduct: http://python.org/psf/codeofconduct/
>


-- 
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/B234P3HHBXN4GT7SJNXDHYAJOQSD7YXY/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to