This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Title: Include simple file loading and saving functions in JSON standard library.
Type: enhancement Stage:
Components: Library (Lib) Versions:
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: methane, nervecenter
Priority: normal Keywords:

Created on 2021-03-10 02:05 by nervecenter, last changed 2022-04-11 14:59 by admin.

Messages (3)
msg388403 - (view) Author: (nervecenter) Date: 2021-03-10 02:05
Python has a "batteries included" approach to standard library construction. To that end, commonly used procedures are often included as functions; adding sugar to the language is often exchanged for adding sugar to libraries.

One of these common procedures in small-scale scripting tasks is loading a JSON file as simple data structures and saving simple data structures as a JSON file. This is normally handled using context managers, json.load(), and json.dump(). This is a bit cluttered and, I'd argue, not quite as Pythonic as the philosophy demands. I have a small file containing this code:

import json

def load_file(filename, *args, **kwargs):
    with open(filename, "r") as fp:
        data = json.load(fp, *args, **kwargs)
    return data

def save_file(data, filename, *args, **kwargs):
    with open(filename, "w") as fp:
        json.dump(data, fp, *args, **kwargs)

I'd say, toss these two functions into the json module. Those two functions contain the clutter. For all other users, loading and saving JSON files become one-line function calls. This is convenient and batteries-included.
msg388404 - (view) Author: Inada Naoki (methane) * (Python committer) Date: 2021-03-10 03:09
This idea is discussed several times. Last discussion thread is:
msg388406 - (view) Author: Inada Naoki (methane) * (Python committer) Date: 2021-03-10 03:56
I created a new vote for naming.
Date User Action Args
2022-04-11 14:59:42adminsetgithub: 87623
2021-03-10 03:56:35methanesetmessages: + msg388406
2021-03-10 03:09:46methanesetnosy: + methane
messages: + msg388404
2021-03-10 02:05:40nervecentercreate