2017-09-08 2 views
1

Ich will Parse Excel und ausdrucken it.I wieNur gleichen Daten bekam mehrmals

files = glob.glob('./data/*.xlsx') 

for x in files: 
    if "$" not in x: 
     print(x) 
     book3 = xlrd.open_workbook(x) 
     sheet3 = book3.sheet_by_index(0) 
     cells = [ 
    ('user_id', 0, 4), 
    ('name', 0, 5), 
    ('nationality', 1, 4), 
    ('domitory', 1, 5), 
    ('group', 1, 6), 
     ] 
     dict_data = OrderedDict() 
     for key, rowy, colx in cells: 
     try: 
      dict_data[key] = sheet3.cell_value(rowy, colx) 
     except IndexError: 
      dict_data[key] = None 

     print(dict_data) 

Also schrieb, bekam ich ein Ergebnis wie

OrderedDict([('user_id', '1'), ('name', 'Blear'), ('nationality', 'America'), ('domitory', 'A'), ('group', 1)], [('user_id', '1'), ('name', 'Blear'), ('nationality', 'America'), ('domitory', 'A'), ('group', 1)], [('user_id', '1'), ('name', 'Blear'), ('nationality', 'America'), ('domitory', 'A'), ('group', 1)]) 

Excel ist excel

Also ich kann wirklich nicht verstehen, warum ich nur ein Daten mehrmals erhalten habe.Ich möchte alle Daten nur 1 Mal pro Daten bekommen.Wie kann ich das beheben? Ich denke nicht, Einzug ist falsch.

Antwort

0

müssen Sie fest indent:

for key, rowy, colx in cells: 
    try: 
     dict_data[key] = sheet3.cell_value(rowy, colx) 
    except IndexError: 
     dict_data[key] = None 
# <--- move left print 
print(dict_data) 
Verwandte Themen