[Home](https://kellyjonbrazil.github.io/jc/)
# jc
JC - JSON Convert
* kellyjonbrazil@gmail.com
This package converts the output of many standard unix command line tools
and file-types to dictionaries and lists of dictionaries.
## Interactive Documentation
Using `jc` in your python programs:
>>> help('jc')
>>> help('jc.lib')
>>> jc.get_help('parser_module_name')
Developing `jc` parsers:
>>> help('jc.utils')
>>> help('jc.streaming')
>>> help('jc.parsers.universal')
## Online Documentation
### Latest
https://github.com/kellyjonbrazil/jc/tree/master/docs
### Specific Version
`https://github.com/kellyjonbrazil/jc/tree/v/docs`
> Replace `` - e.g. `1.18.0`:
Specific versions can also be selected by tag in the Github branch dropdown
menu.
## Usage Example
>>> import subprocess
>>> import jc
>>>
>>> cmd_output = subprocess.check_output(['dig', 'example.com'],
text=True)
>>> data = jc.parse('dig', cmd_output)
>>> data
[{'id': 64612, 'opcode': 'QUERY', 'status': 'NOERROR', ...}]
Alternatively, you can bypass the high-level API and call the parser
modules directly:
>>> import subprocess
>>> import jc
>>>
>>> jc_dig = jc.get_parser('dig')
>>> cmd_output = subprocess.check_output(['dig', 'example.com'],
text=True)
>>> data = jc_dig.parse(cmd_output)
>>> data
[{'id': 64612, 'opcode': 'QUERY', 'status': 'NOERROR', ...}]
or
>>> import subprocess
>>> import jc.parsers.dig
>>>
>>> cmd_output = subprocess.check_output(['dig', 'example.com'],
text=True)
>>> data = jc.parsers.dig.parse(cmd_output)
>>> data
[{'id': 64612, 'opcode': 'QUERY', 'status': 'NOERROR', ...}]
## Available Functions
Use `help(jc.lib)` for details.
### parse
parse(
parser_module_name: str,
data: str | bytes | Iterable
) -> dict | list[dict] | Iterable[dict]
High-level API to easily access the parser. This API will find both
built-in parsers and local plugin parsers.
### get_parser
get_parser(
parser_module_name: str
) -> ModuleType
Get a parser Module object so you can use it directly.
### parser_info
parser_info(
parser_module_name: str,
documentation: bool = False
) -> dict
Get the metadata for a particular parser.
### all_parser_info
all_parser_info(documentation: bool = False) -> list[dict]
Get the metadata for all parsers.
### get_help
get_help(parser_module_name: str) -> None
Convenience function to display the help screen for a parser using
its module name.
### parser_mod_list
parser_mod_list() -> list[str]
Get a list of all available parser module names to be used in
`parse()`, `parser_info()`, and `get_help()`.
### plugin_parser_mod_list
plugin_parser_mod_list() -> list[str]
Get a list of plugin parser module names to be used in
`parse()`, `parser_info()`, and `get_help()`. This list is a subset of
`parser_mod_list()`.
### standard_parser_mod_list
standard_parser_mod_list() -> list[str]
Get a list of standard parser module names to be used in
`parse()`, `parser_info()`, and `get_help()`. This list is a subset of
`parser_mod_list()` and does not contain any streaming parsers.
### streaming_parser_mod_list
streaming_parser_mod_list() -> list[str]
Get a list of streaming parser module names to be used in
`parse()`, `parser_info()`, and `get_help()`. This list is a subset of
`parser_mod_list()`.