On Dec 17, 9:39 pm, aka <alexoploca...@gmail.com> wrote: > Due to being in a hurry I didn't paste correctly (sorry). > > The intention is to put values of column 1 ("id") in the roles list, > therefore appending within the loop, to fill a session var. > > The complete code is:
It's *not* complete. It's missing "import csv". > > roles = [] > inp = 'C:/temp/test.csv' > try: > fp = open(inp, 'rb') > reader = csv.reader(fp, dialect='excel', delimiter=';') > for r in reader: > roles.append(r) > ## ultimately should be something like r.id or r[0] > ## first row of csv file should be skipped because of column > names > > except: > msg = 'Something's wrong with the csv.reader' But you don't print the message! In any case, using the try/except like that *hides* any useful diagnostic information; it gives only an indication that something is wrong, but not what is wrong and where it is wrong. If you throw away the try/except, you will get a more meaningful message -- possibly that "csv" is not defined!! -- and the traceback will tell you in which line the error occured. > return dict(file=inp,roles=str(roles)) Why do you think that you need (a) that complicated expression (b) the str() call? Assuming you are intending to make a function out of all that, what's wrong with returning a (simple) tuple: return inp, roles ? The above 'return' statement is not inside a function/method. You would have got this message: SyntaxError: 'return' outside function People will very soon lose patience with you if you persist in not posting the actual code that you ran. > The roles list isn't populated at all :( This could mean (if the code that was posted is moderately similar to that which was run) that the error happened before the first time that roles.append(r) was executed ;-) Please divulge the contents of test.csv -- but not if it's huge! Considering trying to get your code to work first with a data file of close-to-minimal size and complexity, like this: 8<--- id,other_info tom,1 dick,2 harry,3 8<--- By the way, you mentioned the UnicodeReader class in your original post, but you don't seem to use it ... -- http://mail.python.org/mailman/listinfo/python-list