When trying to write my dictionary to a file I get:

f.write(output)
TypeError: 'tuple' does not support the buffer interface


using this example:




#so far this should read a file
#using dictreader and take a column and join some text onto it


import csv


csvfile= open('StudentListToSort.csv', newline='')
spamreader = csv.DictReader(csvfile,delimiter=',',quotechar='|')


#open a file to write to later
f = open('output.csv', 'wb+')


#iterate through dictreader object
for row in spamreader:
    if row['year'] == '40':     
        username = row['user'] #I put stuff in variables for ease of 
viewing/debugging
        email = "".join([username,'@email.com]) # join text
        
        
        #put output for file in variable first
        output = email, row['first'],row['last'],row['password']
        
        #change tuple to list
        #outputlist= list(output)
        
        #write results to file   
        f.write(output)
        print(output)


I then tried to cast the tuple to a list thinking that would help like this:


        #change tuple to list
        #outputlist= list(output)
        
        #write results to file   
        f.write(outputlist)
        print(outputlist)


same problem:


f.write(outputlist)
TypeError: 'list' does not support the buffer interface


So is it the csv.DictWriter that is needed here?                                
          
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to