import argparse, json, csv, decimal parser = argparse.ArgumentParser(description="Convert Etherscan holders csv to json") parser.add_argument('-i', '--csv', help="Etherscan holders csv") parser.add_argument('-o', '--json', help="Output json file") args = parser.parse_args() with open(args.csv) as f: reader = csv.DictReader(f) rows = list(reader) holders = {} for row in rows: strBalance = row['Balance'].replace(',', '') balance = decimal.Decimal(strBalance) * 10**18 holders[row['HolderAddress']] = str(balance).split('.')[0] with open(args.json, 'w') as f: json.dump(holders, f, indent=2)