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.
|