In many application , we want to read a file as a configuration file from command line . here I have written a source code to read json configuration file in python
source code:
source code:
#!/usr/bin/env python from optparse import OptionParser import re import json import collections def utf8(data): """Encodes the given text as utf-8. Returns a string of bytes. """ if isinstance(data, str): return data elif isinstance(data, unicode): return data.encode("utf-8") return _modify_children(data, utf8) def _modify_children(data, operation): if isinstance(data, collections.Mapping): return dict(map(operation, data.iteritems())) elif isinstance(data, collections.Iterable): return type(data)(map(operation, data)) else: return data def main(): parser = OptionParser(usage="usage: %prog [options] filename", version="%prog 1.0") (options, args) = parser.parse_args() if len(args) != 1: parser.error("wrong number of arguments") with open(args[0]) as f: data = re.compile("^\s*//.*$", re.MULTILINE).sub("", f.read()) print "**** DATA *********" print data valid_data = json.loads(data) # print valid_data # print valid_data["jobs"][0] # print valid_data["jobs"][1] new_data = utf8(valid_data) print "********* unicode encoded data *********" print new_data if __name__ == '__main__': main()here I have used python library optparse to parse the command line argument in our python code. This library helps to read the configuration file mentioned in command line. the json .loads is used to decode the json data to unicode then is again encoded to the python string. To encode the json file , the utf8 function is created. this utf8 function Encodes the given text as utf-8 and returns a string of bytes.