Added automation for converting JSON to YAML format. (#197)

* Added automation for converting json to yaml format

* Create Readme.md

* Deletd the extra files

* Added requirements.txt

* Added name and project in project list

Co-authored-by: Ayush Bhardwaj <classicayush@gmail.com>
This commit is contained in:
stark117 2020-10-30 13:03:16 +05:30 committed by GitHub
parent cf21e68e6b
commit e5864acaf9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 412 additions and 1 deletions

View File

@ -167,6 +167,7 @@ So far, the following projects have been integrated to this repo:
|[2048](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/2048)|[Krunal](https://github.com/gitkp11)
|[Spotify Downloader](spotify_downloader)|[Sagar Patel](https://github.com/sagar627)|
|[Download Page as PDF](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Download-page-as-pdf)|[Jeremias Gomes](https://github.com/j3r3mias)
|[JSON file to YAML convertor](https://github.com/saksham117/Awesome-Python-Scripts/tree/master/json-to-yaml)|[Saksham Basandrai](https://github.com/saksham117)
|[Independent RSA Communication Algorithm](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/RSA_Communication)|[Miguel Santos](https://github.com/wi6n3l)
|[GithubBot](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/GithubBot)|[Abhilasha](https://github.com/Abhilasha06)|
|[Translate CLI](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/TranslateCLI)|[Rodrigo Oliveira](https://github.com/rodrigocam)|

View File

@ -1,5 +1,5 @@
from pytube import YouTube
link = input('link to youtube video: ')
link = input('https://youtu.be/6M1rP2r672o')
yt = Youtube(link)
yt.streams.first().download()
print('downloaded', link)

19
json-to-yaml/Readme.md Normal file
View File

@ -0,0 +1,19 @@
## JSON To YAML Converter
If you are working with config files or need to expose YAML via an API, you will probably find yourself needing to convert a file from JSON to YAML format.
So I have tried to automate the same, by writing the following python script
For running this, you need to install/import the following libraries
```
- import json
- import yaml
```
Then in command prompt you just need to type:
```
python json2yaml.py input_file.json output_file.yaml
```
Here, input_file.json needs to be replaced with the name of your json file, and the output_file.yaml needs to be replaced with the name which you want for your yaml file.

22
json-to-yaml/example.json Normal file
View File

@ -0,0 +1,22 @@
{
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
}
}

35
json-to-yaml/json2yaml.py Normal file
View File

@ -0,0 +1,35 @@
import json
import os
import sys
import yaml
# Checking there is a file name passed
if len(sys.argv) > 1:
# Opening the file
if os.path.exists(sys.argv[1]):
source_file = open(sys.argv[1], "r")
source_content = json.load(source_file)
source_file.close()
# Failikng if the file isn't found
else:
print("ERROR: " + sys.argv[1] + " not found")
exit(1)
# No file, no usage
else:
print("Usage: json2yaml.py <source_file.json> [target_file.yaml]")
# Processing the conversion
output = yaml.dump(source_content)
# If no target file send to stdout
if len(sys.argv) < 3:
print(output)
# If the target file already exists exit
elif os.path.exists(sys.argv[2]):
print("ERROR: " + sys.argv[2] + " already exists")
exit(1)
# Otherwise write to the specified file
else:
target_file = open(sys.argv[2], "w")
target_file.write(output)
target_file.close()

17
json-to-yaml/output.yaml Normal file
View File

@ -0,0 +1,17 @@
glossary:
GlossDiv:
GlossList:
GlossEntry:
Abbrev: ISO 8879:1986
Acronym: SGML
GlossDef:
GlossSeeAlso:
- GML
- XML
para: A meta-markup language, used to create markup languages such as DocBook.
GlossSee: markup
GlossTerm: Standard Generalized Markup Language
ID: SGML
SortAs: SGML
title: S
title: example glossary

View File

@ -0,0 +1,317 @@
# This file may be used to create an environment using:
# $ conda create --name <env> --file <this file>
# platform: win-64
_ipyw_jlab_nb_ext_conf=0.1.0=py37_0
alabaster=0.7.12=py37_0
anaconda=2020.02=py37_0
anaconda-client=1.7.2=py37_0
anaconda-navigator=1.9.12=py37_0
anaconda-project=0.8.4=py_0
argh=0.26.2=py37_0
asn1crypto=1.3.0=py37_0
astroid=2.3.3=py37_0
astropy=4.0=py37he774522_0
atomicwrites=1.3.0=py37_1
attrs=19.3.0=py_0
autopep8=1.4.4=py_0
babel=2.8.0=py_0
backcall=0.1.0=py37_0
backports=1.0=py_2
backports.functools_lru_cache=1.6.1=py_0
backports.shutil_get_terminal_size=1.0.0=py37_2
backports.tempfile=1.0=py_1
backports.weakref=1.0.post1=py_1
bcrypt=3.1.7=py37he774522_0
beautifulsoup4=4.8.2=py37_0
bitarray=1.2.1=py37he774522_0
bkcharts=0.2=py37_0
blas=1.0=mkl
bleach=3.1.0=py37_0
blosc=1.16.3=h7bd577a_0
bokeh=1.4.0=py37_0
boto=2.49.0=py37_0
bottleneck=1.3.2=py37h2a96729_0
bzip2=1.0.8=he774522_0
ca-certificates=2020.1.1=0
certifi=2019.11.28=py37_0
cffi=1.14.0=py37h7a1dbc1_0
chardet=3.0.4=py37_1003
click=7.0=py37_0
cloudpickle=1.3.0=py_0
clyent=1.2.2=py37_1
colorama=0.4.3=py_0
comtypes=1.1.7=py37_0
conda=4.8.5=py37_0
conda-build=3.18.11=py37_0
conda-env=2.6.0=1
conda-package-handling=1.6.0=py37h62dcd97_0
conda-verify=3.4.2=py_1
console_shortcut=0.1.1=4
contextlib2=0.6.0.post1=py_0
convertapi=1.4.0=pypi_0
cryptography=2.8=py37h7a1dbc1_0
curl=7.68.0=h2a8f88b_0
cycler=0.10.0=py37_0
cython=0.29.15=py37ha925a31_0
cytoolz=0.10.1=py37he774522_0
dask=2.11.0=py_0
dask-core=2.11.0=py_0
decorator=4.4.1=py_0
defusedxml=0.6.0=py_0
diff-match-patch=20181111=py_0
distributed=2.11.0=py37_0
docutils=0.16=py37_0
easygui=0.98.1=py37_0
entrypoints=0.3=py37_0
et_xmlfile=1.0.1=py37_0
fastcache=1.1.0=py37he774522_0
filelock=3.0.12=py_0
flake8=3.7.9=py37_0
flask=1.1.1=py_0
flask-cors=3.0.8=py_0
freetype=2.9.1=ha9979f8_1
fsspec=0.6.2=py_0
future=0.18.2=py37_0
get_terminal_size=1.0.0=h38e98db_0
gevent=1.4.0=py37he774522_0
glob2=0.7=py_0
greenlet=0.4.15=py37hfa6e2cd_0
h5py=2.10.0=py37h5e291fa_0
hdf5=1.10.4=h7ebc959_0
heapdict=1.0.1=py_0
html5lib=1.0.1=py37_0
hypothesis=5.5.4=py_0
icc_rt=2019.0.0=h0cc432a_1
icu=58.2=ha66f8fd_1
idna=2.8=py37_0
imageio=2.6.1=py37_0
imagesize=1.2.0=py_0
importlib_metadata=1.5.0=py37_0
imutils=0.5.3=pypi_0
intel-openmp=2020.0=166
intervaltree=3.0.2=py_0
ipykernel=5.1.4=py37h39e3cac_0
ipython=7.12.0=py37h5ca1d4c_0
ipython_genutils=0.2.0=py37_0
ipywidgets=7.5.1=py_0
isort=4.3.21=py37_0
itsdangerous=1.1.0=py37_0
jdcal=1.4.1=py_0
jedi=0.14.1=py37_0
jinja2=2.11.1=py_0
joblib=0.14.1=py_0
jpeg=9b=hb83a4c4_2
json5=0.9.1=py_0
jsonschema=3.2.0=py37_0
jupyter=1.0.0=py37_7
jupyter_client=5.3.4=py37_0
jupyter_console=6.1.0=py_0
jupyter_core=4.6.1=py37_0
jupyterlab=1.2.6=pyhf63ae98_0
jupyterlab_server=1.0.6=py_0
keyring=21.1.0=py37_0
kiwisolver=1.1.0=py37ha925a31_0
krb5=1.17.1=hc04afaa_0
lazy-object-proxy=1.4.3=py37he774522_0
libarchive=3.3.3=h0643e63_5
libcurl=7.68.0=h2a8f88b_0
libiconv=1.15=h1df5818_7
liblief=0.9.0=ha925a31_2
libpng=1.6.37=h2a8f88b_0
libsodium=1.0.16=h9d3ae62_0
libspatialindex=1.9.3=h33f27b4_0
libssh2=1.8.2=h7a1dbc1_0
libtiff=4.1.0=h56a325e_0
libxml2=2.9.9=h464c3ec_0
libxslt=1.1.33=h579f668_0
llvmlite=0.31.0=py37ha925a31_0
locket=0.2.0=py37_1
lxml=4.5.0=py37h1350720_0
lz4-c=1.8.1.2=h2fa13f4_0
lzo=2.10=h6df0209_2
m2w64-gcc-libgfortran=5.3.0=6
m2w64-gcc-libs=5.3.0=7
m2w64-gcc-libs-core=5.3.0=7
m2w64-gmp=6.1.0=2
m2w64-libwinpthread-git=5.0.0.4634.697f757=2
markupsafe=1.1.1=py37he774522_0
matplotlib=3.1.3=py37_0
matplotlib-base=3.1.3=py37h64f37c6_0
mccabe=0.6.1=py37_1
menuinst=1.4.16=py37he774522_0
mistune=0.8.4=py37he774522_0
mkl=2020.0=166
mkl-service=2.3.0=py37hb782905_0
mkl_fft=1.0.15=py37h14836fe_0
mkl_random=1.1.0=py37h675688f_0
mock=4.0.1=py_0
more-itertools=8.2.0=py_0
mpmath=1.1.0=py37_0
msgpack-python=0.6.1=py37h74a9793_1
msys2-conda-epoch=20160418=1
multipledispatch=0.6.0=py37_0
mysql-connector-python=8.0.20=pypi_0
navigator-updater=0.2.1=py37_0
nbconvert=5.6.1=py37_0
nbformat=5.0.4=py_0
networkx=2.4=py_0
nltk=3.4.5=py37_0
nose=1.3.7=py37_2
notebook=6.0.3=py37_0
numba=0.48.0=py37h47e9c7a_0
numexpr=2.7.1=py37h25d0782_0
numpy=1.18.1=py37h93ca92e_0
numpy-base=1.18.1=py37hc3f5095_1
numpydoc=0.9.2=py_0
olefile=0.46=py37_0
opencv-contrib-python=4.3.0.36=pypi_0
opencv-python=4.3.0.36=pypi_0
openpyxl=3.0.3=py_0
openssl=1.1.1d=he774522_4
packaging=20.1=py_0
pandas=1.0.1=py37h47e9c7a_0
pandoc=2.2.3.2=0
pandocfilters=1.4.2=py37_1
paramiko=2.7.1=py_0
parso=0.5.2=py_0
partd=1.1.0=py_0
path=13.1.0=py37_0
path.py=12.4.0=0
pathlib2=2.3.5=py37_0
pathtools=0.1.2=py_1
patsy=0.5.1=py37_0
pep8=1.7.1=py37_0
pexpect=4.8.0=py37_0
pickleshare=0.7.5=py37_0
pillow=7.0.0=py37hcc1f983_0
pip=20.0.2=py37_1
pkginfo=1.5.0.1=py37_0
pluggy=0.13.1=py37_0
ply=3.11=py37_0
portaudio=19.6.0=he774522_4
powershell_shortcut=0.0.1=3
prometheus_client=0.7.1=py_0
prompt_toolkit=3.0.3=py_0
psutil=5.6.7=py37he774522_0
py=1.8.1=py_0
py-lief=0.9.0=py37ha925a31_2
pyaudio=0.2.11=py37he774522_2
pycodestyle=2.5.0=py37_0
pycosat=0.6.3=py37he774522_0
pycparser=2.19=py37_0
pycrypto=2.6.1=py37hfa6e2cd_9
pycurl=7.43.0.5=py37h7a1dbc1_0
pydocstyle=4.0.1=py_0
pyflakes=2.1.1=py37_0
pygments=2.5.2=py_0
pylint=2.4.4=py37_0
pynacl=1.3.0=py37h62dcd97_0
pyodbc=4.0.30=py37ha925a31_0
pyopenssl=19.1.0=py37_0
pyparsing=2.4.6=py_0
pyqt=5.9.2=py37h6538335_2
pyreadline=2.1=py37_1
pyrsistent=0.15.7=py37he774522_0
pysocks=1.7.1=py37_0
pytables=3.6.1=py37h1da0976_0
pytest=5.3.5=py37_0
pytest-arraydiff=0.3=py37h39e3cac_0
pytest-astropy=0.8.0=py_0
pytest-astropy-header=0.1.2=py_0
pytest-doctestplus=0.5.0=py_0
pytest-openfiles=0.4.0=py_0
pytest-remotedata=0.3.2=py37_0
python=3.7.6=h60c2a47_2
python-dateutil=2.8.1=py_0
python-jsonrpc-server=0.3.4=py_0
python-language-server=0.31.7=py37_0
python-libarchive-c=2.8=py37_13
python_abi=3.7=1_cp37m
pytube=9.6.0=pypi_0
pytube3=9.6.4=pypi_0
pytz=2019.3=py_0
pywavelets=1.1.1=py37he774522_0
pywin32=227=py37he774522_1
pywin32-ctypes=0.2.0=py37_1000
pywinpty=0.5.7=py37_0
pyyaml=5.3=py37he774522_0
pyzmq=18.1.1=py37ha925a31_0
qdarkstyle=2.8=py_0
qt=5.9.7=vc14h73c81de_0
qtawesome=0.6.1=py_0
qtconsole=4.6.0=py_1
qtpy=1.9.0=py_0
requests=2.22.0=py37_1
rope=0.16.0=py_0
rtree=0.9.3=py37h21ff451_0
ruamel_yaml=0.15.87=py37he774522_0
scikit-image=0.16.2=py37h47e9c7a_0
scikit-learn=0.22.1=py37h6288b17_0
scipy=1.4.1=py37h9439919_0
seaborn=0.10.0=py_0
send2trash=1.5.0=py37_0
setuptools=45.2.0=py37_0
simplegeneric=0.8.1=py37_2
singledispatch=3.4.0.3=py37_0
sip=4.19.8=py37h6538335_0
six=1.14.0=py37_0
snappy=1.1.7=h777316e_3
snowballstemmer=2.0.0=py_0
sortedcollections=1.1.2=py37_0
sortedcontainers=2.1.0=py37_0
soupsieve=1.9.5=py37_0
speechrecognition=3.6.3=py37_1000
sphinx=2.4.0=py_0
sphinxcontrib=1.0=py37_1
sphinxcontrib-applehelp=1.0.1=py_0
sphinxcontrib-devhelp=1.0.1=py_0
sphinxcontrib-htmlhelp=1.0.2=py_0
sphinxcontrib-jsmath=1.0.1=py_0
sphinxcontrib-qthelp=1.0.2=py_0
sphinxcontrib-serializinghtml=1.1.3=py_0
sphinxcontrib-websupport=1.2.0=py_0
spyder=4.0.1=py37_0
spyder-kernels=1.8.1=py37_0
sqlalchemy=1.3.13=py37he774522_0
sqlite=3.31.1=he774522_0
statsmodels=0.11.0=py37he774522_0
sympy=1.5.1=py37_0
tbb=2020.0=h74a9793_0
tblib=1.6.0=py_0
terminado=0.8.3=py37_0
testpath=0.4.4=py_0
tk=8.6.8=hfa6e2cd_0
toolz=0.10.0=py_0
tornado=6.0.3=py37he774522_3
tqdm=4.42.1=py_0
traitlets=4.3.3=py37_0
typing-extensions=3.7.4.3=pypi_0
ujson=1.35=py37hfa6e2cd_0
unicodecsv=0.14.1=py37_0
urllib3=1.25.8=py37_0
vc=14.1=h0510ff6_4
vs2015_runtime=14.16.27012=hf0eaf9b_1
watchdog=0.10.2=py37_0
wcwidth=0.1.8=py_0
webencodings=0.5.1=py37_1
werkzeug=1.0.0=py_0
wheel=0.34.2=py37_0
widgetsnbextension=3.5.1=py37_0
win_inet_pton=1.1.0=py37_0
win_unicode_console=0.5=py37_0
wincertstore=0.2=py37_0
winpty=0.4.3=4
wrapt=1.11.2=py37he774522_0
xlrd=1.2.0=py37_0
xlsxwriter=1.2.7=py_0
xlwings=0.17.1=py37_0
xlwt=1.3.0=py37_0
xmltodict=0.12.0=py_0
xz=5.2.4=h2fa13f4_4
yaml=0.1.7=hc54c509_2
yapf=0.28.0=py_0
zeromq=4.3.1=h33f27b4_3
zict=1.0.0=py_0
zipp=2.2.0=py_0
zlib=1.2.11=h62dcd97_3
zstd=1.3.7=h508b16e_0