String object has no attribute "append"

Ian Kelly ian.g.kelly at gmail.com
Tue May 28 14:41:37 EDT 2013


On Tue, May 28, 2013 at 12:25 PM, Matt Graves <tunacubes at 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)



More information about the Python-list mailing list