Je souhaite lire les données de la base de données et les convertir en liste de dictionnaires pour les placer dans un fichier XLS à des fins de création de rapports.Comment parcourir et imprimer la liste des dictionnaires dans xls en utilisant python
J'ai essayé code python pour le rapport, car il est plus facile pour moi écrire du code avec des connaissances de programmation minimum
Je veux écrire la liste des dictionnaires dans la liste des dictionnaires à un fichier XLS.
J'essaie de générer le fichier xls mais pas obtenir le résultat correctement
data1 = [{'a':1,'b':2,'c':[{'d':4,'e':5},{'d':8,'e':9}]},{'a':5,'b':3,'c':[{'d':8,'e':7},{'d':1,'e':3}]}]
#Output need to be print like this in excel
A B D E
1 2
4 5
8 9
5 3
8 7
1 3
Voici le code i essayé
try:
import xlwt
except Exception, e:
raise osv.except_osv(_('User Error'), _('Please Install xlwt Library.!'))
filename = 'Report.xls'
string = 'enquiry'
worksheet = wb.add_sheet(string)
data1 = [{'a':1,'b':2,'c':[{'d':4,'e':5},{'d':8,'e':9}]},{'a':5,'b':3,'c':[{'d':8,'e':7},{'d':1,'e':3}]}]
i=0;j=0;m=0;
if data1:
columns = sorted(list(data1[0].keys()))
worksheet.write_merge(0, 0, 0, 9, 'Report')
worksheet.write(2,0,"A")
worksheet.write(2,1,"B")
worksheet.write(2,2,"D")
worksheet.write(2,3,"E")
for i, row in enumerate(data1,3):
for j, col in enumerate(columns):
if type(row[col]) != list:
worksheet.write(i+m, j, row[col], other_tstyle1)
else:
#if list then loop and group it in new cell
if row[col] != []:
row_columns = sorted(list(row[col][0].keys()))
for k, row1 in enumerate(row[col],1):
for l, col1 in enumerate(row_columns):
worksheet.write(k+m+1, l+3, row1[col1])
#iteration of m for new row
m+=1
#m+=1
Je suis sortie comme ça
A B D E
1 2
4
5
8
9
5 3
8
7
1
3
Dans vos données 'C' est une liste avec quelques objets. Je n'ai absolument aucune idée de comment et par quelles règles la liste des objets transforment dans la colonne vide dans le résultat. De mon point de vue, les données pour les deux premières lignes devraient être: [{'a': 1, 'b': 2, 'c': '', 'd': '', 'e': ''}, { 'a': '', 'b': '', 'c': '', 'd': 4, 'e': 5}] –
@ m9_psy question mise à jour –