Member 14918259 Ответов: 1

Метод словаря для файла 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

Что происходит, когда вы запускаете код?

1 Ответов

Рейтинг:
0

Member 14918259

Когда я запускаю код, он помещает все районы в первую область, не обращая внимания на то, что фактически есть для каждого района.