Метод словаря для файла xlsx и записи в формат json
У меня есть xlsx файл с информацией о спортивных площадках (ячейка 5 - район, где расположена спортивная площадка, ячейка 6 - район в районе, 7 - адрес в районе). Мне нужен словарь json, где области (AdmArea) будут ключами большого словаря, значения будут маленьким словарем с районами в качестве ключей, адреса (в формате списка) будут значениями для малого словаря. Конечно, каждый район имеет более одного района, каждый район в то же время имеет более одного адреса. Необходимо, чтобы адреса располагались в порядке появления в файле excel.
Это файл xlsx: https://stepik.org/media/attachments/lesson/268674/data-25290-2019-09-30.xlsx
Мой код печатается для каждой admArea, не соответствующей районам. Мне нужно в случае, если для аналогичной области ей соответствуют все районы, которые входят в эту область. Он печатается случайным образом!
Что я уже пробовал:
import json from collections import defaultdict import openpyxl wb = openpyxl.load_workbook('data-25290-2019-09-30.xlsx') fout = open('outa12.json', 'w', encoding='utf-8') d1 = {} res = defaultdict(list) sheet = wb['Sheet0'] for i in range(2, sheet.max_row+1): admArea = sheet.cell(row=i,column=5).value distr = sheet.cell(row=i,column=6).value addr = sheet.cell(row=i,column=7).value res[distr].append(addr) d1[admArea]=res json.dump(d1, fout, ensure_ascii=False) fout.close()
Richard MacCutchan
Что происходит, когда вы запускаете код?