ast2json 0.4


pip install ast2json

  Latest version

Released: Feb 07, 2025

Project Links

Meta
Author: Laurent Peuch

Classifiers

Development Status
  • 3 - Alpha

Intended Audience
  • Developers

Programming Language
  • Python :: 2
  • Python :: 3

Introduction

ast2json is a small module that will convert any python AST node into its ast representation formatted in a JSON compatible python representation (list and dicts containing string, ints and null).

Installation

pip install ast2json
# or to have lastest version
pip install git+git://github.com/Psycojoker/ast2json.git

Usage

>>> import json
>>> from ast import parse
>>> from ast2json import ast2json

>>> ast = ast2json(parse(open('some_python_source_file.py').read()))
>>> print json.dumps(ast, indent=4)

If you are lazy, “str2json” will apply the “parse” method of ast on a string for you, so you’ll be able to write:

>>> str2json(open('some_python_source_file.py').read())

You can also run via the command line to parse Python source from stdin and print to stdout:

$ ast2json < some_python_source_file.py

Example

This is the result of converting ‘print “Hello World!”’ (and applying json.dumps on the result).

{
    "body": [
        {
            "_type": "Print",
            "nl": true,
            "col_offset": 0,
            "dest": null,
            "values": [
                {
                    "s": "Hello World!",
                    "_type": "Str",
                    "lineno": 1,
                    "col_offset": 6
                }
            ],
            "lineno": 1
        }
    ],
    "_type": "Module"
}

Changelog

0.4 (2025-02-07)

  • you can now use “ast2json” directly from the CLI (it reads stdin) thx to @vergenzt

  • output keys are now sorted to be deterministic

  • various small code improvements

0.2.1 (2016-11-13)

  • fix broken pip installation by @abolger

0.2 (2016-09-03)

  • python 3 support and some unit testing by Juncheol Cho @zironycho

Licence

BSD

Wheel compatibility matrix

Platform Python 2 Python 3
any

Files in release

No dependencies