Python Forum
Organizing Data in Dictionary - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: General Coding Help (https://python-forum.io/forum-8.html)
+--- Thread: Organizing Data in Dictionary (/thread-20652.html)



Organizing Data in Dictionary - Ranjirock - Aug-23-2019

Hello All,

I'm trying to pull the data from excel and organize it inside the dictionary for further usage. some how I'm failing, please help.

Input File is like:
No Ticket User
1 P12334 Raju
2 P12335 Usha
3 P12336 Suri
4 P12337 Ben
5 P12338 Raju
6 P12339 Roy
7 P12340 Ben
8 P12341 Raju
9 P12342 Roy
10 P12343 Usha
11 P12344 Ben
12 P12345 Roy
13 P12346 Usha

I need output as:
In a dictionary
Raju - P12334, P12337, P12338
Ben - P12340, P12343
Usha - P12350, P12351, P12327

But I'm not getting it, the dictionary is having only one ticket information for each user (key). I'm unable to append or add values. Could you please help?

values = {}
for i in range(sheet.nrows):
    row = sheet.row_values(i)
    print(row[2])
    values[row[2]]={
        'Backlogs':row[1]
    }

#pprint.pprint(values)
print(values)



RE: Organizing Data in Dictionary - woooee - Aug-23-2019

There is no reason to have "Backlogs" in the dictionary if it is the one and only entry. To have more than on entry per user, use a list.
values = {}
for i in range(sheet.nrows):
    row = sheet.row_values(i)
    this_value=row[2]  ## save looking up row[2] multiple times
    print(this_value)
    if this_value not in values:
        values[this_value] = []
    values[this_value].append(row[1])
 
#pprint.pprint(values)
print(values)



RE: Organizing Data in Dictionary - perfringo - Aug-24-2019

Another possibility is to use .setdefault method (instead of rows 6-8):

values.setdefault(this_value, []).append(row[1])



RE: Organizing Data in Dictionary - Ranjirock - Aug-27-2019

Thank you both of you. It worked