Skip to the content.

Home

jc.parsers.tsv_ih_s

jc - JSON Convert TSV implicit header file streaming parser

This streaming parser outputs JSON Lines (cli) or returns an Iterable of Dictionaries (module)

The tsv implicit header file streaming parser is a clone of the csv implicit header file streaming parser that uses '\t' as the delimiter character. The file must have no header, and the field names will be generated as "c0", "c1", etc.

Note: The first 100 rows are read into memory for file analysis, then the rest of the rows are loaded lazily.

Usage (cli):

$ cat file.tsv | jc --tsv-ih-s

Usage (module):

import jc
result = jc.parse('tsv_ih_s', tsv_output)

Schema:

TSV file converted to a Dictionary: https://docs.python.org/3/library/csv.html

{
  "c0":     string,
  "c1":     string,

  # below object only exists if using -qq or ignore_exceptions=True
  "_jc_meta": {
    "success":        boolean,     # false if error parsing
    "error":          string,      # exists if "success" is false
    "line":           string       # exists if "success" is false
  }
}

Examples:

$ cat homes.tsv
142   160   28    10    5   3   60    0.28    3167
175   180   18    8     4   1   12    0.43    4033
129   132   13    6     3   1   41    0.33    1471
...

$ cat homes.tsv | jc --tsv-ih-s -p
{"c0":"142","c1":"160","c2":"28","c3":"10","c4":"5"...}
{"c0":"175","c1":"180","c2":"18","c3":"8","c4":"4"...}
{"c0":"129","c1":"132","c2":"13","c3":"6","c4":"3"...}
...

parse

def parse(data: Union[str, bytes],
          raw: bool = False,
          quiet: bool = False,
          ignore_exceptions: bool = False) -> List[Dict[str, Any]]

Main text parsing function

Parameters:

data:        (string)  text data to parse
raw:         (boolean) unprocessed output if True
quiet:       (boolean) suppress warning messages if True

Returns:

List of Dictionaries. Raw or processed structured data.

Parser Information

Compatibility: linux, darwin, cygwin, win32, aix, freebsd

Source: jc/parsers/tsv_ih_s.py

Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com)