New submission from Alex Gordon:

Broadly speaking, there are three main output styles for json.dump/dumps:

1. Default: json.dumps(obj)
2. Compact: json.dumps(obj, separators=(',', ':'))
3. Pretty-printing: json.dumps(obj, sort_keys=True, indent=4)

The 'compact' style is the densest, suitable if the JSON is to be sent over the 
network, archived on disk, or otherwise consumed by a machine. The 
pretty-printed style is for human consumption: configuration files, debugging, 
etc.

Even though the compact style is often desirable, the API for producing it is 
unforgiving. It's easy to accidentally write code like the following, which 
silently produces invalid nonsense:

    json.dumps(obj, separators=(':', ','))

I propose the addition of a new flag `compact=True`, that simply sets 
`separators=(',', ':')`. e.g.

    >>> obj = {"foo": 1, "bar": 2}
    >>> json.dumps(obj, compact=True)
    '{"foo":1,"bar":2}'

The defaults for `separators=` are good, so eventually `compact=` would 
relegate `separators=` to obscurity. Setting both `compact=True` and 
`separators=` at the same time should be an error.

----------
components: Library (Lib)
messages: 287663
nosy: Alex Gordon
priority: normal
severity: normal
status: open
title: Add compact=True flag to json.dump/dumps
type: enhancement
versions: Python 3.7

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue29540>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to