Coder Social home page Coder Social logo

json2yaml's Introduction

json2yaml

Command line utilities to convert between JSON and YAML while preserving the order of associative arrays.

Preserving the mapping order is helpful to humans reading the documents, despite not affecting their meaning.

Install

pip install json2yaml

Usage

json2yaml input.json output.yaml

yaml2json input.yaml output.json

$ json2yaml --help
Usage:
    json2yaml (--version|--help)
    json2yaml [<json_file>] [<yaml_file>]

Arguments:
    <json_file>    The input file containing the JSON to convert. If not
                   specified, reads from stdin.
    <yaml_file>    The output file to which to write the converted YAML. If
                   not specified, writes to stdout.
$ yaml2json --help
Usage:
    yaml2json (--version|--help)
    yaml2json [-i <indent>] [<yaml_file>] [<json_file>]

Arguments:
    -i, --indent=INDENT  Number of spaces to indent [default: 4]
    <yaml_file>          The input file containing the YAML to convert. If not
                         specified, reads from stdin.
    <json_file>          The output file to which to write the converted JSON.
                         If not specified, writes to stdout.

Changelog

  • 1.2.0 (October 19, 2021)
    • support Python 3
    • support multiple yaml documents in one file
    • learn to wrap multiple yaml documents in a JSON array (-a | --array)
    • use yaml safe_load to prevent loading of arbitrary Python objects
  • 1.1.1 (March 16, 2015)
    • terminate json output with newline
  • 1.1.0 (March 16, 2015)
    • take indent as command line argument (-i | --indent)
    • prevent trailing spaces in json output

Authors

David Bild

License

Copyright 2015 David R. Bild

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in compliance with the License. You may obtain a copy of the License from the LICENSE.txt file or at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

json2yaml's People

Contributors

drbild avatar ivangreene avatar wolfgangbeiderbohne avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

json2yaml's Issues

Accept multiple input files

/feature
The output file argument should be prepended with -o |--output and the tool should accept as many intput files as defined.
The usage will be e.g.

yaml2json [-i <indent>] [-a] [-f] [<yaml_file>, <yaml_file>...] [-o <json_file>]

The output will be json stream

For the json2yaml the output will be yaml multidocument

json.dump with indent should not add trailing spaces.

If using the indent option to json.dump the separators argument should be set to (',',': ') (i.e. set the item separator to not contain a space). Without this change the conversion leaves lines with trailing whitespace which causes some editors and VCS to complain.

The json.dump function also doesn't terminate the last line with a newline character which should be added.

As a feature request I would like the indent to default to 2 instead of 4 to make it match the indentation of the yaml files, or else have it as a command line option.

bug: Silently override file

When second argument defined and file exists, the tool overwrite the target file.

IMHO the output should be prepended with -o |--output argument and the tool should accept as many intput files as defined, but is would be a feature request.

Processing file output option separate first level in yaml

Hi,
I see your json2yaml and is a great tool.
When use a big json file, and covert into a yaml file, write all in each line, the is difficult read without a separator.
An example is:
test1:
......
......
test2:
......
......
.....

Exist a option or workaround to generate the first level with a empty line?
Example:
test1:
......
......

test2:
......
......

.....

Regards

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.