Weird errors when trying to access a dictionary key
Zentrader
zentraders at gmail.com
Fri Jul 20 15:27:14 EDT 2007
> rpt_file.writelines('\t' + [song].keys() \
> + '\t' +
> I get the following error:
>
> Traceback (most recent call last):
> AttributeError: 'list' object has no attribute 'keys'
All of these messages are correct. The first error is
AttributeError: 'list' object has no attribute 'keys'
You are converting the dictionary to a list on this line, and lists do
not have keys
> rpt_file.writelines('\t' + [song].keys() \
---> to a list <---
When you print it, you are printing a dictionary, so it does have
keys. Note the first line has braces, not brackets so it is a
dictionary. You might want to consider using a dictionary of classes,
with each class containing all of the data that is now in the
hodgepodge of dictionaries, or simply a list with item[0]=year,
item[1]=month, etc. This is an over-simplified version of using
classes to store data. There has to be more examples on the web.
[code].class my_class :
. def __init__(self):
. self.field_1 = "init field_1"
. self.field_2 = 0
.
.objectList = []
.for j in range(0, 2):
. objectList.append( my_class() )
.
.objectList[0].field_1= "Test [0] Field 1"
.objectList[0].field_2= "Data for Field #2 for [0]"
.objectList[0].field_3= "Data for Field #3 for [0]" ## not in
original[/code]
print "objectList[0] =", objectList[0].field_1, "---->",
\
objectList[0].field_2, "---->",
objectList[0].field_3
print "objectList[1] =", objectList[1].field_1, "---->",
objectList[1].field_2
More information about the Python-list
mailing list