Skip to main content

jsonc-parser

This package is a lightweight, zero-dependency module for parsing files with .jsonc extension. (a.k.a. JSON with comments)

Installation

To install this package, simply download it from PyPI:

pip install jsonc-parser

Also you can build it yourself from source code available on GitHub

Usage

You need to just import JsoncParser class from this package:

from jsonc_parser.parser import JsoncParser

This class requires no instance to function (i.e. it is fully static)

Functions

These are all methods that JsoncParser class provides for working with .jsonc files:

  • JsoncParser.parse_file(filepath: PathLike) -> dict

    This function parses file, specified in filepath parameter, and deserializes it into a valid Python object (dictionary), removing any comment in the process. No alterations are made it the file itself. filepath parameter specifies path to .jsonc file.

    from jsonc-parser.parser import JsoncParser
    
    file_path = "./data.jsonc"
    # Content from 'data.jsonc' -> {"version": "1.0.0" /*This is my project's version*/}
    
    data = JsoncParser.parse_file(file_path)
    
    print(data)
    # Output: {'version': '1.0.0'}
    

    This function can raise FunctionParameterError if filepath parameter is not a path-like object (str, bytes object representing a path, or os.PathLike compliant) or is empty. Also this function will raise FileError exception if file's format is unsupported and a ParserError exception if file cannot be parsed/contains invalid JSON data.

  • JsoncParser.parse_str(_string: str) -> dict

    This function parses string, specified in _string parameter, and deserializes it into a valid Python object (dictionary), removing any comment in the process.

    from jsonc-parser.parser import JsoncParser
    
    json_string = """{"version": "1.0.0" /*This is my project's version*/}"""
    
    data = JsoncParser.parse_str(json_string)
    
    print(data)
    # Output: {'version': '1.0.0'}
    

    This function can raise FunctionParameterError if _string parameter is not a string or is empty. Also this function will raise a ParserError exception if file cannot be parsed/contains invalid JSON data.

    JsoncParser.convert_to_json(filepath: PathLike, remove_file: bool = False) -> None

    This function converts file from .jsonc to .json format, removing any comments in the process. filepath parameter specifies path to file and remove_file parameter specifies if .jsonc file will be removed (deleted from hard drive) after conversion. If set to True, this function will delete .jsonc file leaving only .json file. Otherwise, both files are not deleted. This function can raise FunctionParameterError if filepath parameter is not a path-like object or is empty or if remove_file parameter is not a boolean.

  • JsoncParser.convert_to_jsonc(filepath: PathLike, remove_file: bool = False) -> None

    This function converts file from .json to .jsonc format, enabling comment support. filepath parameter specifies path to file and remove_file parameter specifies if .jsonc file will be removed (deleted from hard drive) after conversion. If set to True, this function will delete .jsonc file leaving only .json file. Otherwise, both files are not deleted. This function can raise FunctionParameterError if filepath parameter is not a path-like object or is empty or if remove_file parameter is not a boolean.

Exceptions

There are a total of 3 custom exceptions that jsonc-parser can raise during its runtime. To access the in your script, simply import them from jsonc_parser.errors module:

from jsonc_parser.errors import FileError, IncorrectParameterError, ParserError

Exceptions:

  • FileError

    This exception indicates that there is a problem with selected file.
  • FunctionParameterError

    This exception indicates that some of function's parameters are invalid. They may have wrong type, have invalid values or be erroneous in some other way.
  • ParserError

    This exception indicates that file cannot be parsed. It can have wrong extension, invalid data, etc.

Metadata

Release files for jsonc-parser 1.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jsonc-parser 1.1.5
File Size Uploaded
jsonc-parser-1.1.5.tar.gz 4.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jsonc-parser 1.1.5
File Interpreter ABI Platform
jsonc_parser-1.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 10.1 kB

Release files / jsonc-parser-1.1.5.tar.gz

Download URL jsonc-parser-1.1.5.tar.gz
Size 4.5 kB
Tags Source
SHA-256 checksum
How to use checksums
7126d17725b0413cd40af4297d9f6412c4181a62135e4c41cdf8f6a82c5936e6
BLAKE2b-256 checksum
How to use checksums
3585bec7d88eca76c6d014d8efc17b0a9babb0810213e974bff3b7928158216b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.9.2

Release files / jsonc_parser-1.1.5-py3-none-any.whl

Download URL jsonc_parser-1.1.5-py3-none-any.whl
Size 5.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
abd1db76a4c6d1733ec7bb5340a89c49cbc878a181a1e7947ee6719eedf2c6cc
BLAKE2b-256 checksum
How to use checksums
62be7d27877578c43decdc38a5fac0c7aecde2e0d2f7b50869131ef9bfd1d36e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.9.2

Release history Release notifications | RSS feed

This release

1.1.5 This release

2 release files

1.1.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page