40 lines
773 B
Python
Executable File
40 lines
773 B
Python
Executable File
#!/usr/bin/env python3
|
|
import argparse
|
|
import json
|
|
import xmltodict
|
|
import sys
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument(
|
|
'infile',
|
|
type=argparse.FileType('r'),
|
|
nargs='?',
|
|
default=sys.stdin,
|
|
)
|
|
parser.add_argument(
|
|
'outfile',
|
|
type=argparse.FileType('w'),
|
|
nargs='?',
|
|
default=sys.stdout,
|
|
)
|
|
parser.add_argument(
|
|
'-p',
|
|
'--pretty',
|
|
help='Indent JSON with tabs and newlines.',
|
|
action='store_true',
|
|
default=False,
|
|
)
|
|
|
|
args = parser.parse_args()
|
|
|
|
args.outfile.write(json.dumps(
|
|
xmltodict.parse(args.infile.read()),
|
|
indent="\t" if args.pretty else None,
|
|
))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|