Guest User

CSV to JSON Converter

a guest
Jun 10th, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.94 KB | None | 0 0
  1. import json
  2. import csv
  3. from itertools import islice
  4. import collections
  5.  
  6. with open('/home/bhargav/Downloads/Table_3_Countrywise_DGCA__Q4_OCT-DEC_2017.csv') as csvfile:
  7.     reader = csv.DictReader(islice(csvfile, 0, 59), fieldnames=("id", "name", "passengersToIndia", "passengersFromIndia", "freightToIndia", "freightFromIndia"))
  8.     next(csvfile)
  9.     outDict = collections.OrderedDict()
  10.     outDict.setdefault('nodes', [])
  11.     outDict.setdefault('pLinksTo', [])
  12.     outDict.setdefault('pLinksFrom', [])
  13.     outDict.setdefault('fLinksTo', [])
  14.     outDict.setdefault('fLinksFrom', [])
  15.     listReader = list(reader)
  16.     pToMax = max([float(x['passengersToIndia']) for x in listReader])
  17.     pFromMax = max([float(x['passengersFromIndia']) for x in listReader])
  18.     fToMax = max([float(x['freightToIndia']) for x in listReader])
  19.     fFromMax = max([float(x['freightFromIndia']) for x in listReader])
  20.  
  21.     for row in listReader:
  22.         nodeval = {'id': int(float(row['id'])), 'name': row['name']}
  23.         outDict['nodes'].append(nodeval)
  24.         link1 = {'source': int(float(row['id'])), 'target': 0, 'value': int(float(row['passengersToIndia'])),
  25.                  'weight': float(row['passengersToIndia'])/pToMax}
  26.         outDict['pLinksTo'].append(link1)
  27.         link2 = {'target': int(float(row['id'])), 'source': 0, 'value': int(float(row['passengersFromIndia'])),
  28.                  'weight': float(row['passengersFromIndia']) / pFromMax}
  29.         outDict['pLinksFrom'].append(link2)
  30.         link3 = {'source': int(float(row['id'])), 'target': 0, 'value': int(float(row['freightToIndia'])),
  31.                  'weight': float(row['freightToIndia']) / fToMax}
  32.         outDict['fLinksTo'].append(link3)
  33.         link4 = {'target': int(float(row['id'])), 'source': 0, 'value': int(float(row['freightFromIndia'])),
  34.                  'weight': float(row['freightToIndia']) / fFromMax}
  35.         outDict['fLinksFrom'].append(link4)
  36.     print(json.dumps(outDict))
Add Comment
Please, Sign In to add comment