Skip to main content

A wrapper to JSON parsers allowing comments, multiline strings and trailing commas

Project description

A wrapper to JSON parsers allowing comments, multiline strings and trailing commas


Dependencies

Python 2.7, 3.3

Optional

ujson 1.30+


Description

JSON Comment allows to parse JSON files or strings with:

  • Single and Multi line comments

  • Multi line data strings

  • Trailing comma in objects and arrays

This package works with any JSON parser which supports:

  • load(fp, ...) to parse files

  • loads(s, ...) to parse strings

by adding a preprocessor to these calls.


Comments

  • # and ; are for single line comments

  • /* and */ enclose multiline comments

Inline comments are not supported


Multiline strings

Any string can be multiline, even object keys.

  • Multiline strings start and end with """, like in python

  • The preprocessor merges all lines to a single standard string

  • A single trailing space is kept, if present

  • New line is not kept. To hard code new lines in the string, use \\n


Install

pip install jsoncomment

OR

  • Download source

  • python setup.py install


Usage

import json
from jsoncomment import JsonComment

string = "[]"
parser = JsonComment(json)
parsed_object = parser.loads(string)

Examples

Added in the /examples directory


Source

Source code available with MIT license on Bitbucket.


API

Added in top level init.py

How to read the API

API is split in:

* `User Interface` for common use
* `Developer Interface` exposing some internals that could be useful

For each item ( function or class ), there are 2 blocks of comments, above and below item definition:

* The top describes the return values
* The bottom describes the item and call variables

If call variables have defaults or use duck typing, every allowed value is described

Example:

# return_value
    # description
from .some_module import SomeClass
    # SomeClass description
# (
    # variable_1,
        # description
    # variable_2 = something,
        # description

        # = Default
            # description of default value ( something )
        # = something_2
            # description of alternate form ( duck typing )
# )

describes return_value = SomeClass(variable_1, variable_2 = current_value)


Contact

Dando Real ITA @ Steam Profile

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jsoncomment-0.2.3.zip (11.0 kB view hashes)

Uploaded Source

Built Distributions

jsoncomment-0.2.3.win-amd64.exe (235.8 kB view hashes)

Uploaded Source

jsoncomment-0.2.3.win32.exe (209.7 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page