From ff38aa1691054ed17c6c04f66642563d6e0aeb68 Mon Sep 17 00:00:00 2001 From: David Mendoza Date: Wed, 30 Sep 2020 22:43:18 -0600 Subject: [PATCH 1/8] made the template for my script --- Scripts/Miscellaneous/json2yaml/README.md | 19 +++++++++++++++++++ Scripts/Miscellaneous/json2yaml/json2yaml.py | 0 .../Miscellaneous/json2yaml/requirements.txt | 1 + 3 files changed, 20 insertions(+) create mode 100644 Scripts/Miscellaneous/json2yaml/README.md create mode 100644 Scripts/Miscellaneous/json2yaml/json2yaml.py create mode 100644 Scripts/Miscellaneous/json2yaml/requirements.txt diff --git a/Scripts/Miscellaneous/json2yaml/README.md b/Scripts/Miscellaneous/json2yaml/README.md new file mode 100644 index 000000000..3699865d6 --- /dev/null +++ b/Scripts/Miscellaneous/json2yaml/README.md @@ -0,0 +1,19 @@ +# Python script that provides the download and upload speed of your Wifi +A simple Python script that uses 'pyyaml' module to conver an input json file into a output yaml file. + +### Prerequisites +You will need to install pyyaml. +The installation commands are provided in requirements.txt + +### How to run the script +First you have to go to the json2yaml directory. Run the following command once you are in project directory + +```cd Scripts/Miscellaneous/json2yaml``` + +For Python 3: ```python3 json2yaml.py jsonFilePath yamlFilePath``` + +### Screenshot/GIF showing the sample use of the script +![Screenshot](Screenshot.png) + +## *Author Name* +David Mendoza \ No newline at end of file diff --git a/Scripts/Miscellaneous/json2yaml/json2yaml.py b/Scripts/Miscellaneous/json2yaml/json2yaml.py new file mode 100644 index 000000000..e69de29bb diff --git a/Scripts/Miscellaneous/json2yaml/requirements.txt b/Scripts/Miscellaneous/json2yaml/requirements.txt new file mode 100644 index 000000000..e4cf41e3d --- /dev/null +++ b/Scripts/Miscellaneous/json2yaml/requirements.txt @@ -0,0 +1 @@ +pyyaml==5.3.1 \ No newline at end of file From 5af294578f7ce81998a18678cd15a1a66025d835 Mon Sep 17 00:00:00 2001 From: David Mendoza Date: Wed, 30 Sep 2020 22:47:55 -0600 Subject: [PATCH 2/8] got a reference file for testing, and validated the first case --- Scripts/Miscellaneous/json2yaml/json2yaml.py | 21 + Scripts/Miscellaneous/json2yaml/test.json | 515 +++++++++++++++++++ 2 files changed, 536 insertions(+) create mode 100644 Scripts/Miscellaneous/json2yaml/test.json diff --git a/Scripts/Miscellaneous/json2yaml/json2yaml.py b/Scripts/Miscellaneous/json2yaml/json2yaml.py index e69de29bb..ede2f813d 100644 --- a/Scripts/Miscellaneous/json2yaml/json2yaml.py +++ b/Scripts/Miscellaneous/json2yaml/json2yaml.py @@ -0,0 +1,21 @@ +from json import load +from yaml import dump +from sys import argv + +jsonPath = "" +yamlPath = "" + +if len(argv) ==1: + jsonPath = input("please enter the path to your JSON file: ") + yamlPath = input("please enter the path to your YAML file: ") + + +print("started to convert your file...") + +jsonFile = open(jsonPath, "r") +jsonValue = load(jsonFile) +jsonFile.close() + +yamlFile = open(yamlPath, "w") +dump(jsonValue, yamlFile) +yamlFile.close() diff --git a/Scripts/Miscellaneous/json2yaml/test.json b/Scripts/Miscellaneous/json2yaml/test.json new file mode 100644 index 000000000..0e1b67367 --- /dev/null +++ b/Scripts/Miscellaneous/json2yaml/test.json @@ -0,0 +1,515 @@ +[ + { + "_id": "5f755f4445586ec915a403d4", + "index": 0, + "guid": "98a0c81c-dda3-4ac3-a10e-fb8ed59355c9", + "isActive": false, + "balance": "$3,833.20", + "picture": "http://placehold.it/32x32", + "age": 36, + "eyeColor": "green", + "name": { + "first": "Ramirez", + "last": "Rivera" + }, + "company": "SUPPORTAL", + "email": "ramirez.rivera@supportal.org", + "phone": "+1 (971) 587-2255", + "address": "291 John Street, Hillsboro, Louisiana, 7019", + "about": "Voluptate amet exercitation quis magna. Ullamco aliquip commodo qui proident mollit aliquip anim dolor ut ipsum amet exercitation esse in. Enim dolore consequat laborum officia in ullamco deserunt magna quis. Laboris fugiat ut sunt culpa et incididunt incididunt ad deserunt culpa excepteur consectetur. Dolore amet reprehenderit excepteur voluptate eiusmod deserunt eiusmod consequat eu veniam nisi irure. Minim consectetur esse est voluptate veniam. Eiusmod excepteur incididunt magna officia ut.", + "registered": "Tuesday, August 23, 2016 12:11 AM", + "latitude": "-87.19633", + "longitude": "84.665832", + "tags": [ + "mollit", + "occaecat", + "velit", + "sit", + "dolore" + ], + "range": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ], + "friends": [ + { + "id": 0, + "name": "George Cochran" + }, + { + "id": 1, + "name": "Blevins Blankenship" + }, + { + "id": 2, + "name": "Marjorie Calhoun" + } + ], + "greeting": "Hello, Ramirez! You have 6 unread messages.", + "favoriteFruit": "banana" + }, + { + "_id": "5f755f442a60b80114c3ed28", + "index": 1, + "guid": "c06c14b1-b07d-47ed-bddc-9073a93f000f", + "isActive": false, + "balance": "$3,131.39", + "picture": "http://placehold.it/32x32", + "age": 31, + "eyeColor": "green", + "name": { + "first": "Esther", + "last": "Best" + }, + "company": "ISOTRONIC", + "email": "esther.best@isotronic.net", + "phone": "+1 (896) 497-3551", + "address": "765 Meserole Avenue, Sedley, Arkansas, 3426", + "about": "Dolore dolore consectetur occaecat duis eiusmod ut sint dolore irure laboris ea ullamco nulla. Officia voluptate pariatur laboris tempor minim amet culpa deserunt velit nostrud. Velit ex cillum commodo mollit reprehenderit veniam excepteur velit consequat laborum proident qui. Quis cupidatat velit ullamco id eiusmod sint eu dolor eu sint exercitation excepteur adipisicing. Amet voluptate commodo aute incididunt minim velit. Ipsum eiusmod est laboris sit sit in consequat mollit nostrud.", + "registered": "Saturday, October 8, 2016 10:46 PM", + "latitude": "41.287394", + "longitude": "2.328433", + "tags": [ + "commodo", + "sit", + "eu", + "eu", + "velit" + ], + "range": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ], + "friends": [ + { + "id": 0, + "name": "Ginger Wilkerson" + }, + { + "id": 1, + "name": "Hobbs Higgins" + }, + { + "id": 2, + "name": "Brandy Crane" + } + ], + "greeting": "Hello, Esther! You have 6 unread messages.", + "favoriteFruit": "apple" + }, + { + "_id": "5f755f4403adce1c726dc23b", + "index": 2, + "guid": "bc716a2c-5421-42b9-b437-becfe69f11e3", + "isActive": true, + "balance": "$3,151.96", + "picture": "http://placehold.it/32x32", + "age": 34, + "eyeColor": "brown", + "name": { + "first": "Lenora", + "last": "Bennett" + }, + "company": "EXOPLODE", + "email": "lenora.bennett@exoplode.ca", + "phone": "+1 (946) 492-3632", + "address": "709 Lake Street, Jugtown, Nebraska, 610", + "about": "Irure ea consequat duis exercitation incididunt et ad consectetur nulla velit sit aute. Labore ullamco sit commodo non nostrud commodo occaecat mollit minim esse Lorem cupidatat veniam tempor. Reprehenderit Lorem anim enim et ullamco cillum culpa qui ea commodo. Ea incididunt sit tempor enim cillum.", + "registered": "Tuesday, December 30, 2014 11:59 PM", + "latitude": "-43.907388", + "longitude": "97.489236", + "tags": [ + "anim", + "eu", + "Lorem", + "do", + "nisi" + ], + "range": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ], + "friends": [ + { + "id": 0, + "name": "Marcie Crosby" + }, + { + "id": 1, + "name": "Hayes Rowland" + }, + { + "id": 2, + "name": "Lamb Carroll" + } + ], + "greeting": "Hello, Lenora! You have 6 unread messages.", + "favoriteFruit": "banana" + }, + { + "_id": "5f755f44490b2999bb8aa2a1", + "index": 3, + "guid": "f1e63cb9-0135-4fb5-bc95-9a13ebf332da", + "isActive": true, + "balance": "$1,438.06", + "picture": "http://placehold.it/32x32", + "age": 27, + "eyeColor": "brown", + "name": { + "first": "Mayra", + "last": "Gardner" + }, + "company": "ORBALIX", + "email": "mayra.gardner@orbalix.biz", + "phone": "+1 (931) 581-2234", + "address": "941 Macon Street, Eden, Ohio, 4685", + "about": "Non non labore velit Lorem. Aliquip do adipisicing ullamco aliqua id id. Id aute sit magna nostrud veniam in dolore ullamco.", + "registered": "Friday, April 10, 2020 7:17 PM", + "latitude": "-28.894209", + "longitude": "136.164699", + "tags": [ + "ullamco", + "reprehenderit", + "qui", + "deserunt", + "officia" + ], + "range": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ], + "friends": [ + { + "id": 0, + "name": "Magdalena Boyd" + }, + { + "id": 1, + "name": "Mack Garner" + }, + { + "id": 2, + "name": "Richmond Spencer" + } + ], + "greeting": "Hello, Mayra! You have 5 unread messages.", + "favoriteFruit": "strawberry" + }, + { + "_id": "5f755f44596bc18eb81309ed", + "index": 4, + "guid": "922c7d64-fbe2-4867-a758-89fd2a5edeec", + "isActive": false, + "balance": "$3,531.00", + "picture": "http://placehold.it/32x32", + "age": 40, + "eyeColor": "blue", + "name": { + "first": "Bender", + "last": "Joyce" + }, + "company": "XIIX", + "email": "bender.joyce@xiix.tv", + "phone": "+1 (921) 556-2662", + "address": "946 Middleton Street, Tolu, Iowa, 5687", + "about": "Nulla deserunt amet qui eiusmod laboris quis elit est culpa ea fugiat. Nostrud do exercitation voluptate dolor aliquip minim. Veniam sint dolore consectetur ea sunt nulla incididunt excepteur duis eu ea. Reprehenderit ex proident elit est velit occaecat ipsum eu tempor irure commodo magna irure. Amet irure nostrud in non pariatur non cillum commodo et mollit adipisicing. Ullamco proident minim ut irure. Aliqua excepteur pariatur dolor occaecat anim amet.", + "registered": "Thursday, November 27, 2014 9:48 PM", + "latitude": "10.656148", + "longitude": "30.627142", + "tags": [ + "labore", + "dolor", + "nisi", + "fugiat", + "exercitation" + ], + "range": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ], + "friends": [ + { + "id": 0, + "name": "Vinson Brock" + }, + { + "id": 1, + "name": "Buckner Hardin" + }, + { + "id": 2, + "name": "Mccarthy Hanson" + } + ], + "greeting": "Hello, Bender! You have 10 unread messages.", + "favoriteFruit": "banana" + }, + { + "_id": "5f755f446c0ecc99679f07f0", + "index": 5, + "guid": "93dcef6b-7c60-4c20-8cdf-808cfa3f1145", + "isActive": true, + "balance": "$2,807.58", + "picture": "http://placehold.it/32x32", + "age": 27, + "eyeColor": "brown", + "name": { + "first": "Mcgee", + "last": "Mckee" + }, + "company": "GENMY", + "email": "mcgee.mckee@genmy.io", + "phone": "+1 (854) 501-3539", + "address": "511 Wogan Terrace, Echo, Mississippi, 8205", + "about": "Aliquip laboris ut reprehenderit culpa reprehenderit irure adipisicing consequat eiusmod. Quis pariatur ad voluptate excepteur eu. Non minim pariatur incididunt quis aute minim laborum Lorem laborum ea. Duis consequat velit nisi tempor est qui mollit ullamco. Labore et ut eiusmod in amet reprehenderit aliquip qui sit non irure ullamco consequat anim. Eu in nisi dolor irure duis ex.", + "registered": "Saturday, September 23, 2017 5:39 PM", + "latitude": "-67.317075", + "longitude": "57.365119", + "tags": [ + "sit", + "adipisicing", + "eu", + "consectetur", + "sit" + ], + "range": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ], + "friends": [ + { + "id": 0, + "name": "Francis Stone" + }, + { + "id": 1, + "name": "Stephanie Kim" + }, + { + "id": 2, + "name": "Sherrie Cunningham" + } + ], + "greeting": "Hello, Mcgee! You have 10 unread messages.", + "favoriteFruit": "strawberry" + }, + { + "_id": "5f755f44200333e788b95a47", + "index": 6, + "guid": "07c6c403-0a73-4983-8dca-f6cf1caec863", + "isActive": false, + "balance": "$3,097.48", + "picture": "http://placehold.it/32x32", + "age": 25, + "eyeColor": "blue", + "name": { + "first": "Staci", + "last": "Peterson" + }, + "company": "UNI", + "email": "staci.peterson@uni.us", + "phone": "+1 (814) 443-3528", + "address": "640 Brooklyn Road, Cavalero, Rhode Island, 4261", + "about": "Ea non non consequat ipsum magna excepteur ea eu amet ullamco in. Velit sunt id eu esse duis. Id anim ea cillum excepteur. Eu deserunt ex culpa mollit duis officia deserunt ipsum ipsum laborum non ex.", + "registered": "Tuesday, May 19, 2015 12:33 PM", + "latitude": "-73.960556", + "longitude": "176.266376", + "tags": [ + "anim", + "do", + "nulla", + "ut", + "nisi" + ], + "range": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ], + "friends": [ + { + "id": 0, + "name": "Gentry Mcneil" + }, + { + "id": 1, + "name": "Luz Hoover" + }, + { + "id": 2, + "name": "Turner Maldonado" + } + ], + "greeting": "Hello, Staci! You have 8 unread messages.", + "favoriteFruit": "apple" + }, + { + "_id": "5f755f44c9eee03b202a11da", + "index": 7, + "guid": "9d8f63e6-4ba7-490d-83d5-2aa634a3dd4d", + "isActive": false, + "balance": "$3,598.95", + "picture": "http://placehold.it/32x32", + "age": 20, + "eyeColor": "brown", + "name": { + "first": "Cecelia", + "last": "Levine" + }, + "company": "CINCYR", + "email": "cecelia.levine@cincyr.com", + "phone": "+1 (893) 472-3748", + "address": "942 Heath Place, Yogaville, Marshall Islands, 398", + "about": "Minim id voluptate occaecat magna proident. Deserunt sint eiusmod aliqua amet reprehenderit dolore nostrud incididunt esse minim. Eiusmod incididunt ut laboris sunt aute ut sunt mollit minim enim Lorem ex. Dolor nisi occaecat ut labore consequat proident eu sint ut. Culpa ad aliqua consequat officia voluptate dolore et veniam magna eu qui amet. Dolor proident dolore deserunt reprehenderit incididunt culpa sunt dolor sit velit aliqua consectetur eu. Duis commodo quis nulla sunt Lorem mollit reprehenderit et cillum velit cupidatat.", + "registered": "Wednesday, March 9, 2016 10:07 PM", + "latitude": "-75.565217", + "longitude": "-8.072494", + "tags": [ + "cillum", + "minim", + "ad", + "aliqua", + "ut" + ], + "range": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ], + "friends": [ + { + "id": 0, + "name": "Graham Curry" + }, + { + "id": 1, + "name": "Jenifer Mcconnell" + }, + { + "id": 2, + "name": "Farrell Martin" + } + ], + "greeting": "Hello, Cecelia! You have 9 unread messages.", + "favoriteFruit": "banana" + }, + { + "_id": "5f755f4484cbf6797dfaac85", + "index": 8, + "guid": "4a50bd7b-7c3f-4d58-9f21-f641b520bfab", + "isActive": false, + "balance": "$2,286.92", + "picture": "http://placehold.it/32x32", + "age": 22, + "eyeColor": "blue", + "name": { + "first": "Curry", + "last": "Orr" + }, + "company": "MUSAPHICS", + "email": "curry.orr@musaphics.name", + "phone": "+1 (952) 440-3907", + "address": "423 Furman Street, Darlington, Kentucky, 5418", + "about": "Culpa nostrud dolore do incididunt esse consectetur sunt occaecat aute sint consectetur. Nulla duis dolor nulla elit nostrud ullamco reprehenderit magna cupidatat laboris pariatur. In ex adipisicing excepteur labore aliquip ex reprehenderit officia exercitation consequat voluptate officia. Culpa excepteur nostrud reprehenderit ad eiusmod id nulla cupidatat id et commodo pariatur. Commodo dolore laboris sint in sint. Aliquip nostrud in incididunt id aliqua proident nostrud exercitation exercitation amet consectetur commodo sit.", + "registered": "Tuesday, September 6, 2016 2:33 PM", + "latitude": "-60.915669", + "longitude": "61.059604", + "tags": [ + "aliquip", + "magna", + "voluptate", + "occaecat", + "est" + ], + "range": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ], + "friends": [ + { + "id": 0, + "name": "Fitzgerald Mann" + }, + { + "id": 1, + "name": "Elvia Woods" + }, + { + "id": 2, + "name": "York Mercado" + } + ], + "greeting": "Hello, Curry! You have 10 unread messages.", + "favoriteFruit": "banana" + } + ] \ No newline at end of file From 1dea69472cedc6770651c7a294edeb1c04976934 Mon Sep 17 00:00:00 2001 From: David Mendoza Date: Thu, 1 Oct 2020 00:58:13 -0400 Subject: [PATCH 3/8] done with the first sketch --- Scripts/Miscellaneous/json2yaml/json2yaml.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Scripts/Miscellaneous/json2yaml/json2yaml.py b/Scripts/Miscellaneous/json2yaml/json2yaml.py index ede2f813d..0ecdaea8c 100644 --- a/Scripts/Miscellaneous/json2yaml/json2yaml.py +++ b/Scripts/Miscellaneous/json2yaml/json2yaml.py @@ -7,8 +7,13 @@ if len(argv) ==1: jsonPath = input("please enter the path to your JSON file: ") + yamlPath = input("please enter the path to your YAML file: ") +elif len(argv) == 2: + jsonPath = argv[1] yamlPath = input("please enter the path to your YAML file: ") - +elif len(argv) >= 3: + jsonPath = argv[1] + yamlPath = argv[2] print("started to convert your file...") @@ -19,3 +24,5 @@ yamlFile = open(yamlPath, "w") dump(jsonValue, yamlFile) yamlFile.close() + +print(f"done, your file is now on {yamlPath}") From e2f95e5b07c6b3d8b03b935ba5f0e62b29209a9e Mon Sep 17 00:00:00 2001 From: David Mendoza Date: Thu, 1 Oct 2020 00:59:29 -0400 Subject: [PATCH 4/8] forgot the screenshot --- Scripts/Miscellaneous/json2yaml/Screenshot.png | Bin 0 -> 28466 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Scripts/Miscellaneous/json2yaml/Screenshot.png diff --git a/Scripts/Miscellaneous/json2yaml/Screenshot.png b/Scripts/Miscellaneous/json2yaml/Screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..5c13dbe089bf7cb1c715ff1bb92b73d3250284de GIT binary patch literal 28466 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 QbMBtWNhwK|OBe_KFEzC$Hvj+t literal 0 HcmV?d00001 From c4b0043edd7273cbdedb56ec253e7b04171a5b33 Mon Sep 17 00:00:00 2001 From: David Mendoza Date: Thu, 1 Oct 2020 01:51:01 -0400 Subject: [PATCH 5/8] requested changes on the readme --- Scripts/Miscellaneous/json2yaml/README.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Scripts/Miscellaneous/json2yaml/README.md b/Scripts/Miscellaneous/json2yaml/README.md index 3699865d6..925d25242 100644 --- a/Scripts/Miscellaneous/json2yaml/README.md +++ b/Scripts/Miscellaneous/json2yaml/README.md @@ -1,19 +1,29 @@ # Python script that provides the download and upload speed of your Wifi + A simple Python script that uses 'pyyaml' module to conver an input json file into a output yaml file. ### Prerequisites + You will need to install pyyaml. The installation commands are provided in requirements.txt ### How to run the script + First you have to go to the json2yaml directory. Run the following command once you are in project directory -```cd Scripts/Miscellaneous/json2yaml``` +```bash + cd Scripts/Miscellaneous/json2yaml +``` -For Python 3: ```python3 json2yaml.py jsonFilePath yamlFilePath``` +For Python 3: +```bash + python json2yaml.py jsonFilePath yamlFilePath +``` ### Screenshot/GIF showing the sample use of the script + ![Screenshot](Screenshot.png) ## *Author Name* + David Mendoza \ No newline at end of file From bfd460aa491d3ec0692a9006791f37b9e60fc1c1 Mon Sep 17 00:00:00 2001 From: David Mendoza Date: Thu, 1 Oct 2020 02:03:54 -0400 Subject: [PATCH 6/8] requested changes on the comments of the script --- Scripts/Miscellaneous/json2yaml/json2yaml.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Scripts/Miscellaneous/json2yaml/json2yaml.py b/Scripts/Miscellaneous/json2yaml/json2yaml.py index 0ecdaea8c..94c74ab9f 100644 --- a/Scripts/Miscellaneous/json2yaml/json2yaml.py +++ b/Scripts/Miscellaneous/json2yaml/json2yaml.py @@ -5,6 +5,8 @@ jsonPath = "" yamlPath = "" +# validated the ammout of args passed from the command line, so I could get the path from both files before starting the script + if len(argv) ==1: jsonPath = input("please enter the path to your JSON file: ") yamlPath = input("please enter the path to your YAML file: ") @@ -17,10 +19,20 @@ print("started to convert your file...") +# from line 27 to 29 +# I opened the json file +# after that I load the json string into a real python dict +# after that I closed the json file + jsonFile = open(jsonPath, "r") jsonValue = load(jsonFile) jsonFile.close() +# from line 36 to 38 +# I opened (and created if not done) the yaml destination file +# after that I dumped the dict into the yamlFile through pyyaml +# after that I closed the csv file + yamlFile = open(yamlPath, "w") dump(jsonValue, yamlFile) yamlFile.close() From 34774f5360c273e6a80d08ee0f3205fd4668942a Mon Sep 17 00:00:00 2001 From: David Mendoza Date: Thu, 1 Oct 2020 07:15:02 -0600 Subject: [PATCH 7/8] requested changes of helper functions, plus i made the code smaller and simpler --- Scripts/Miscellaneous/json2yaml/json2yaml.py | 35 ++++++++++---------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/Scripts/Miscellaneous/json2yaml/json2yaml.py b/Scripts/Miscellaneous/json2yaml/json2yaml.py index 94c74ab9f..62b626bbe 100644 --- a/Scripts/Miscellaneous/json2yaml/json2yaml.py +++ b/Scripts/Miscellaneous/json2yaml/json2yaml.py @@ -2,31 +2,30 @@ from yaml import dump from sys import argv -jsonPath = "" -yamlPath = "" - # validated the ammout of args passed from the command line, so I could get the path from both files before starting the script - -if len(argv) ==1: - jsonPath = input("please enter the path to your JSON file: ") - yamlPath = input("please enter the path to your YAML file: ") -elif len(argv) == 2: - jsonPath = argv[1] - yamlPath = input("please enter the path to your YAML file: ") -elif len(argv) >= 3: - jsonPath = argv[1] - yamlPath = argv[2] +def getInputAndOutputFiles(): + if len(argv) ==1: + jsonPath = input("please enter the path to your JSON file: ") + yamlPath = input("please enter the path to your YAML file: ") + elif len(argv) == 2: + jsonPath = argv[1] + yamlPath = input("please enter the path to your YAML file: ") + elif len(argv) >= 3: + jsonPath = argv[1] + yamlPath = argv[2] + return jsonPath,yamlPath print("started to convert your file...") +jsonPath,yamlPath = getInputAndOutputFiles() -# from line 27 to 29 +# from line 24 to 26 # I opened the json file # after that I load the json string into a real python dict -# after that I closed the json file +def getJSONValueFromFile(jsonPath): + with open(jsonPath, "r") as jsonFile: + return load(jsonFile) -jsonFile = open(jsonPath, "r") -jsonValue = load(jsonFile) -jsonFile.close() +jsonValue = getJSONValueFromFile(jsonPath) # from line 36 to 38 # I opened (and created if not done) the yaml destination file From 63dd807d5dfeff2135c620c3069b84bb080b7f62 Mon Sep 17 00:00:00 2001 From: Aditya Jetely Date: Fri, 2 Oct 2020 08:32:46 +0530 Subject: [PATCH 8/8] Update json2yaml.py --- Scripts/Miscellaneous/json2yaml/json2yaml.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/Scripts/Miscellaneous/json2yaml/json2yaml.py b/Scripts/Miscellaneous/json2yaml/json2yaml.py index 62b626bbe..a85effaae 100644 --- a/Scripts/Miscellaneous/json2yaml/json2yaml.py +++ b/Scripts/Miscellaneous/json2yaml/json2yaml.py @@ -25,15 +25,12 @@ def getJSONValueFromFile(jsonPath): with open(jsonPath, "r") as jsonFile: return load(jsonFile) -jsonValue = getJSONValueFromFile(jsonPath) - -# from line 36 to 38 +if __name__ == "__main__": # I opened (and created if not done) the yaml destination file # after that I dumped the dict into the yamlFile through pyyaml -# after that I closed the csv file - -yamlFile = open(yamlPath, "w") -dump(jsonValue, yamlFile) -yamlFile.close() - -print(f"done, your file is now on {yamlPath}") +# after that I closed the csv file + jsonValue = getJSONValueFromFile(jsonPath) + yamlFile = open(yamlPath, "w") + dump(jsonValue, yamlFile) + yamlFile.close() + print(f"done, your file is now on {yamlPath}")