11#! /usr/bin/env python
22import argparse
3+ import json
34import sys
4- import requests
5- import simplejson
5+
66import dict2xml
7- import json
8- from bs4 import BeautifulSoup
7+ import requests
98
109
1110class Json2xml (object ):
@@ -32,7 +31,7 @@ def __init__(self, data: str) -> None:
3231 def fromjsonfile (cls , filename : str ):
3332 try :
3433 json_data = open (filename )
35- data = simplejson .load (json_data )
34+ data = json .load (json_data )
3635 json_data .close ()
3736 except IOError as e :
3837 print ("I/O error({0}): {1}" .format (e .errno , e .strerror ))
@@ -46,8 +45,8 @@ def fromjsonfile(cls, filename: str):
4645 #
4746 # ---------------------------------
4847 @classmethod
49- def fromurl (cls , url : str ):
50- response = requests .get (url )
48+ def fromurl (cls , url : str , params = None ):
49+ response = requests .get (url , params = params )
5150 if response .status_code == 200 :
5251 return cls (response .json ())
5352 else :
@@ -75,9 +74,8 @@ def fromstring(cls, data: str):
7574 # ---------------------------------
7675 def json2xml (self ):
7776 if self .data :
78- xmldata = dict2xml .dict2xml (self .data )
79- xml = BeautifulSoup (xmldata , "html.parser" )
80- return xml
77+ xmldata = dict2xml .dict2xml (self .data , wrap = "all" , indent = " " )
78+ return xmldata
8179
8280
8381def main (argv = None ):
@@ -90,17 +88,17 @@ def main(argv=None):
9088 if args .url :
9189 url = args .url
9290 data = Json2xml .fromurl (url )
93- print ( Json2xml .json2xml (data ) )
91+ return Json2xml .json2xml (data )
9492
9593 if args .file :
9694 file = args .file
9795 data = Json2xml .fromjsonfile (file )
98- print ( Json2xml .json2xml (data ) )
96+ return Json2xml .json2xml (data )
9997
10098 if args .data :
10199 str_data = args .data
102100 data = Json2xml .fromstring (str_data )
103- print ( Json2xml .json2xml (data ) )
101+ return Json2xml .json2xml (data )
104102
105103if __name__ == "__main__" :
106104 main (sys .argv )
0 commit comments