Erreur de réception: iterable attendu, pas flottant

Je suis relativement nouveau pour python et je ne suis pas sûr de savoir comment résoudre cette erreur. Lorsque je lance le script ci-dessous, il produit l'erreur "iterable expected, not float". Cette erreur survient lorsque les valeurs de la list "panier" sont transmises au file csv.

import os import xlwt import xlrd import csv index = 0 cart = [] print("Provide row") row = int(input()) print("Provide column") col = int(input()) path= 'U:/SWEModelConstruction/Milk' for root,dirs,files in os.walk(path): xlsfiles=[ _ for _ in files if _.endswith('.xls') ] for xlsfile in xlsfiles: wb = xlrd.open_workbook(os.path.join(root,xlsfile)) n = len(wb.sheets()) for s in range(n) : sheet = wb.sheet_by_index(s) data=sheet.cell(row,col).value cart.append(data) index = index + 1 print (cart) with open('test.csv','w') as fp: a=csv.writer(fp,delimiter=',') a.writerows(cart) b.close() 

entrez la description de l'image ici

cart est une list, mais writers veut une list de lists. Changer cart.append(data) to cart.append([data]) .

les valeurs dans la list du panier sont le nombre de flotteurs, alors modifiez le thème à str

 cart.append(str(data)) 

Comme expliqué dans csv.writer.writerows prend iterator? l'écrivain gère une list de lignes. C'est-à-dire que le panier de données serait

 [[ro1v1, row1v2, row1v3], [row2v1, row2v2, row2v3], [row3v1, row3v2, row3v3]] 

Vous envoyez le panier en [v1, v2, v3, v4]

Jetez un oeil à la configuration en utilisant DictReader et DictWriter comme expliqué dans Python 101: Lecture et écriture de files CSV

Le problème que vous rencontrez est que vous ne fournissez pas le type approprié à la méthode writerows() . Si vous consultez la documentation , vous verrez ce qui suit:

Une ligne doit être itérative de strings ou de nombres pour les objects Writer

La méthode de writerows attend des iters nesteds (par exemple, une list de lists). Ce que je rassemble, c'est que vous passez une list de valeurs. Je reorderais essayer cart.append(list(data)) .