Как преобразовать ячейки из excel в json для nifi

Всем привет. Мне нужно получить данные из файла excel, преобразовать их в json, чтобы потом перенести его в NiFi. Я использую Python, библиотека, соответственно, openpyxl.

Допустим, у меня есть такая таблица:

Таблица excel

Мне из нее нужно получить значения всех строк и колонок B, C, E и H.

Я пробовала несколько способов, самый удачный пока что такой:

sheet = ws1

data = []
for i in range(2, 5):
     nazvanie = sheet.cell(row=i, column=1).value
     inform1 = sheet.cell(row=i, column=2).value
     inform2 = sheet.cell(row=i, column=3).value
     inform4 = sheet.cell(row=i, column=5).value
     inform5 = sheet.cell(row=i, column=8).value
  
     row1 = {filial:kvartal1}
        
     data.append(row1)

Однако то, что я получаю, выглядит примерно так:

[{'Название 1': 'Текст'}]
[{'Название 1': 'Текст'}, {'Название 2': 'Текст'}]
[{'Название 1': 'Текст'}, {'Название 2': 'Текст'}, {'Название 3': 'Текст'}]

И т.д. То есть я получаю то, что и запрашиваю - он циклом проходится по данным и выдает их (как я понимаю). Однако мне нужна запись следующего формата:

{"Название 1": "Текст", "Название 2": "Текст"}

И т.д. По факту после вывода массива я мало что могу с ним сделать. При преобразовании во что-либо я все еще получаю эту же запись в вертикальном положении, где каждая ее строчка является отдельным объектом. Даже если я перевожу это в строку и просто пытаюсь удалить, например, последний символ (]), удаляется последний символ из каждой строчки:

[{'Название 1': 'Текст'}
[{'Название 1': 'Текст'}, {'Название 2': 'Текст'}
[{'Название 1': 'Текст'}, {'Название 2': 'Текст'}, {'Название 3': 'Текст'}

Я так же пробовала получать информацию иначе:

sheet = ws1
for i in range(2, 5):
     nazvanie = sheet.cell(row=i, column=1).value
     inform1 = sheet.cell(row=i, column=2).value
     inform2 = sheet.cell(row=i, column=3).value
     inform3 = sheet.cell(row=i, column=5).value
     inform4 = sheet.cell(row=i, column=8).value

        a = [nazvanie, inform1]
        b = [nazvanie, inform2]
        c = [nazvanie, inform3]
        d = [nazvanie, inform4]

        joinedlist = a + b + c + d

Но результат не сильно отличается. Подскажите, пожалуйста, что я делаю не так и как в итоге мне преобразовать эти данные?

UPD: Возможно, мне следует преобразовать данные из Excel в xml, потому что Nifi его тоже читает. Однако я не уверена, не является ли этот метод костыльным.


Ответы (0 шт):