String object has no attribute "append"

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


On Tue, May 28, 2013 at 12:41 PM, Ian Kelly <ian.g.kelly at gmail.com> wrote:
> 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)

And along the same lines, the expression column[('speccolumn')] should
just be column[speccolumn].



More information about the Python-list mailing list