#!/usr/bin/env python3 import argparse import json import sys from csv import DictReader from typing import Any, Dict, List, Optional, TextIO def csv2json(fp: TextIO, fields: Optional[List[str]]) -> None: reader = DictReader(fp, fieldnames=fields) for row in reader: json.dump(row, sys.stdout) print() if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument( 'file', nargs='?', type=argparse.FileType('r'), default=sys.stdin ) parser.add_argument('--field', dest='fields', action='append') args = parser.parse_args() csv2json(args.file, args.fields)