On Tue, May 28, 2013 at 12:41 PM, Ian Kelly <ian.g.ke...@gmail.com> wrote: > On Tue, May 28, 2013 at 12:25 PM, Matt Graves <tunacu...@gmail.com> wrote: >> I receive this error while toying around with Functions... >> >> def pulldata(speclist,speccolumn): >> with open('profiles.csv', 'r') as f: >> reader = csv.reader(f) >> for column in reader: >> (speclist).append(column[('speccolumn')]) >> >> pulldata(speclist = 'numbers', speccolumn = "0") >> >> >>>Traceback (most recent call last): >>> File "C:\Desktop\Python\CFI\Devices V2\users.py", line 17, in <module> >>> pulldata(speclist = 'numbers', speccolumn = "0") >>> File "C:\Desktop\Python\CFI\Devices V2\users.py", line 16, in pulldata >>> (speclist).append(column[('speccolumn')]) >>>AttributeError: 'str' object has no attribute 'append' >> >> I'm getting the error because it should say "numbers.append", but it is >> reading it as "(speclist).append". >> >> This is my first time playing with functions, so be gentle. > > It looks like you're trying to pass in a list called 'numbers' into > the pulldata function, but that is not what's happening. Because of > the single quotes you have around numbers, you are passing in the > /string/ 'numbers' and calling it 'speclist' instead. The same goes > for speccolumn as well; I think you mean to pass in the integer 0, but > you're passing in the string "0" instead. Try it without the quotes: > > pulldata(speclist = numbers, speccolumn = 0)
And along the same lines, the expression column[('speccolumn')] should just be column[speccolumn]. -- http://mail.python.org/mailman/listinfo/python-list