Python CSV Reader - преобразовать строку в Int в строке для при итерации

Я заинтересован в том, чтобы не записывать карту функции int в кортеж строк, где она у меня есть. Смотрите последнюю часть моего примера:

import os
import csv

filepath =  os.path.normpath("c:/temp/test.csv")

individualFile = open(filepath,'rb')
dialect = csv.Sniffer().sniff(individualFile.read(1000))

individualFile.seek(0)
reader = csv.reader(individualFile,dialect)

names = reader.next()

print names

def buildTree(arityList):
    if arityList == []:
        return 0            
    else:
        tree = {}
        for i in xrange(arityList[0][0],arityList[0][1]+1):
            tree[i] = buildTree(arityList[1:])
        return tree


census = buildTree([(1,12),(1,6),(1,4),(1,2),(0,85),(0,14)])

for m, f, s, g, a, c, t in reader:
    try:
        m,f,s,g,a,c,t = map(int,(m,f,s,g,a,c,t))
        census[m][f][s][g][a][c] += t
    except:
        print "error"
        print m, f, s, g, a, c, t
        break   

Что я хочу сделать, это что-то вроде этого:

for m, f, s, g, a, c, t in map(int,reader):
    try:
        census[m][f][s][g][a][c] += t
    except:
        print "error"
        print m, f, s, g, a, c, t
        break    

Я пытаюсь это, и я получаю следующую ошибку:

TypeError: int() argument must be a string or a number, not 'list'

У меня проблемы с пониманием этого сообщения об ошибке. Я думал, что читатель был повторяемым объектом, а не списком. Он возвращает список для каждой итерации, но сам не является списком, правильно? Я предполагаю, что это скорее побочный вопрос. Я действительно хочу знать, есть ли способ сделать то, что я пытаюсь сделать. Извините за код, который на самом деле не имеет отношения, но я подумал, что включу весь мой пример. Не стесняйтесь разорвать его на куски! :) Мне интересно, может быть, было бы лучше просто указать один из вариантов, где ключ - это кортеж, а не этот вложенный словарь, но даже в этом случае я все еще заинтересован в выяснении своего вопроса.

Ответы на вопрос(1)

Ваш ответ на вопрос