title: python csv into dictionary
body: <p>I am pretty new to python. I need to create a class that loads csv data into a dictionary.</p>
  
  <p>I want to be able to control the keys and value
  So let say the following code, I can pull out worker1.name or worker1.age anytime i want.</p>
  
  <pre><code>class ageName(object):
  '''class to represent a person'''
  def __init__(self, name, age):
  self.name = name
  self.age = age
  
  worker1 = ageName('jon', 40)
  worker2 = ageName('lise', 22)
  
  #Now if we print this you see that it`s stored in a dictionary
  print worker1.__dict__
  print worker2.__dict__
  #
  '''
  {'age': 40, 'name': 'jon'}
  #
  {'age': 22, 'name': 'lise'}
  #
  '''
  #
  
  #when we call (key)worker1.name we are getting the (value)
  print worker1.name
  #
  '''
  #
  jon
  #
  '''
  </code></pre>
  
  <p>But I am stuck at loading my csv data into keys and value.</p>
  
  <p>[1] I want to create my own keys
  worker1 = ageName([name],[age],[id],[gender])</p>
  
  <p>[2] each [name],[age],[id] and [gender] comes from specific a column in a csv data file</p>
  
  <p>I really do not know how to work on this. I tried many methods but I failed. I need some helps to get started on this.</p>
  
  <p>---- Edit
  This is my original code</p>
  
  <pre><code>import csv
  
  # let us first make student an object
  
  class Student():
      def __init__(self):
          self.fname = []
          self.lname = []
          self.ID = []
          self.sport = []
          # let us read this file
          for row in list(csv.reader(open("copy-john.csv", "rb")))[1:]:
              self.fname.append(row[0])
              self.lname.append(row[1])   
              self.ID.append(row[2])
              self.sport.append(row[3])
      def Tableformat(self):
          print "%-14s|%-10s|%-5s|%-11s" %('First Name','Last Name','ID','Favorite Sport')
          print "-" * 45
          for (i, fname) in enumerate(self.fname):
             print "%-14s|%-10s|%-5s|%3s" %(fname,self.lname[i],self.ID[i],self.sport[i])
      def Table(self):
          print self.lname
  
  class Database(Student):
      def __init__(self):
          g = 0
          choice = ['Basketball','Football','Other','Baseball','Handball','Soccer','Volleyball','I do not like sport']
          data = student.sport
          k = len(student.fname)
          print k
          freq = {}
          for i in data:
              freq[i] = freq.get(i, 0) + 1
          for i in choice:
              if i not in freq:
                  freq[i] = 0
              print i, freq[i]
  
  
  student = Student()
  database = Database()
  </code></pre>
  
  <p>This is my current code (incomplete)</p>
  
  <pre><code>import csv
  class Student(object):
      '''class to represent a person'''
      def __init__(self, lname, fname, ID, sport):
          self.lname = lname
          self.fname = fname
          self.ID = ID
          self.sport = sport
  reader = csv.reader(open('copy-john.csv'), delimiter=',', quotechar='"')
  student = [Student(row[0], row[1], row[2], row[3]) for row in reader][1::]
  print "%-14s|%-10s|%-5s|%-11s" %('First Name','Last Name','ID','Favorite Sport')
  print "-" * 45
  for i in range(len(student)):
      print "%-14s|%-10s|%-5s|%3s" %(student[i].lname,student[i].fname,student[i].ID,student[i].sport)
  
  choice = ['Basketball','Football','Other','Baseball','Handball','Soccer','Volleyball','I do not like sport']
  lst = []
  h = 0
  k = len(student)
  # 23
  for i in range(len(student)):
      lst.append(student[i].sport) # merge together
  
  for a in set(lst):
      print a, lst.count(a)
  
  for i in set(choice):
      if i not in set(lst):
          lst.append(i)
          lst.count(i) = 0
          print lst.count(i)
  </code></pre>