csv_writer - bruno-beloff/scs_mfr GitHub Wiki

docs > software repositories > scs_mfr > commands > file-based data management


DESCRIPTION

The csv_writer utility is used to convert from JSON format to comma-separated value (CSV) format.

The path into the JSON document is used to name the column in the header row: dictionary fields are separated from their container by a period ('.') character, and array members are separated by a colon (':') character.

The --quote-all flag forces quote ('"') characters around all cell values. This is useful when long numeric codes such as IMEI numbers are included in the data, such codes should not be interpreted as floats by spreadsheet applications. The default behaviour is to quote only where necessary.

DEFAULT MODE:

All the leaf nodes of the first JSON document are included in the CSV. If subsequent JSON documents in the input stream contain fields that were not in this first document, these extra fields are ignored. If subsequent JSON documents do not contain a field that is in the header, then this field is given the null value.

HEADER-SCAN MODE:

All input documents are scanned in order to build an inclusive hearer row. Any documents that do not contain a header fields are given a null value for that field. Any values bound to paths that become internal nodes are discarded.

Warning: the header-scan mode requires memory proportional to the size of its input.

SYNOPSIS

csv_writer.py [{ -a | -x | -s }] [-q] [-e] [-v] [FILENAME]

Options
--version show program's version number and exit
-h, --help show this help message and exit
-a, --append append rows to existing file
-x, --exclude-header do not write the header row to stdout
-s, --header-scan scan all documents before building the header row
-q, --quote-all wrap all CSV cell values in quotes
-e, --echo echo stdin to stdout
-v, --verbose report narrative to stderr

EXAMPLES

socket_receiver.py | ./csv_writer.py temp.csv -e

DOCUMENT EXAMPLE - INPUT

{"tag": "scs-ap1-6", "rec": "2018-04-04T14:50:27.641+00:00", "val": {"hmd": 59.6, "tmp": 23.8}}

DOCUMENT EXAMPLE - OUTPUT

tag,rec,val.hmd,val.tmp
scs-ap1-6,2018-04-04T14:50:38.394+00:00,59.7,23.8

SEE ALSO

scs_mfr/csv_reader

RESOURCES

JSON Lines