help I'm getting delimited
sjmachin at lexicon.net
Wed Dec 17 13:44:11 CET 2008
On Dec 17, 9:39 pm, aka <alexoploca... at 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'
> fp = open(inp, 'rb')
> reader = csv.reader(fp, dialect='excel', delimiter=';')
> for r in reader:
> ## ultimately should be something like r.id or r
> ## first row of csv file should be skipped because of column
> 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
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:
By the way, you mentioned the UnicodeReader class in your original
post, but you don't seem to use it ...
More information about the Python-list