Таблица Excel в JSON с дополнительными полями из другого листа

443
Prajakta Software

Я прошел Сохранение листа Excel в виде файла JSON, что помогло мне преобразовать таблицу EXCEL в формат JSON, но я хотел бы добавить некоторые дополнительные поля в этот файл JSON.

Таблица Excel в JSON с дополнительными полями из другого листа

Я прошу следующую информацию в первом листе

  1. Ваш ID: A001
  2. Имя: мое имя
  3. Элемент списка: октябрь-2018

[ Мой 2-й лист ]

Эта информация будет общей для данных, введенных на втором листе


При создании файла JSON я хочу добавить «Автоматически» следующие 3 поля (принято на листе 1) в каждую запись для JSON, который я создаю из листа Sheet2

  1. Ваш ID: A001
  2. Имя: мое имя
  3. Элемент списка: октябрь-2018

Я использую следующий код VBA для создания JSON

Public Sub xls2json() savename = "xls2json.json" Dim wkb As Workbook Dim wks As Worksheet Set wkb = ThisWorkbook Set wks = wkb.Sheets(2) lcolumn = wks.Cells(4, Columns.Count).End(xlToLeft).Column lrow = wks.Cells(Rows.Count, "A").End(xlUp).Row Dim titles() As String ReDim titles(lcolumn) For i = 1 To lcolumn titles(i) = wks.Cells(4, i) 'titles are taken from this row Next i json = "[" dq = """" For J = 5 To lrow ' data picked from this row onwards For i = 1 To lcolumn If i = 1 Then json = json & "{" End If cellvalue = wks.Cells(J, i) json = json & dq & titles(i) & dq & ":" & dq & cellvalue & dq If i <> lcolumn Then json = json & "," End If Next i json = json & "}" If J <> lrow Then json = json & "," End If Next J json = json & "]" myFile = Application.DefaultFilePath & "\" & savename Open myFile For Output As #1 Print #1, json Close #1 a = MsgBox("Saved as " & savename, vbOKOnly) End Sub 
0
Не совсем понятно, на что мы смотрим. Что такое оригинальный лист? Описание листа 2 является круглым. Где данные добавляются, поле в порядке? Как должен выглядеть полученный файл? Почему бы просто не добавить поля в Excel, а затем преобразовать в JSON? Что именно затрудняет вас? fixer1234 6 лет назад 1

1 ответ на вопрос

-1
Krishna

Как я понимаю, у вас есть JSON-файлы для sheel1 и sheet2, и вы хотите добавить столбцы из sheet2 в sheet1. Что-то вроде ниже.

0 > cat file1.json [ { "firstName": "Alice", "age": 22 }, { "firstName": "Bob", "age": 33 } ] 0 > cat file2.json [ { "fullName": "Alice Alice" }, { "fullName": "Bob Bob" } ] 

чтобы получить что-то вроде ...

0 > python3 ./bla.py file1.json file2.json [ { "firstName": "Alice", "age": 22, "fullName": "Alice Alice" }, { "firstName": "Bob", "age": 33, "fullName": "Bob Bob" } ] 

Следующий код Python должен работать

import json, sys   def main(): '''The Main'''  data1 = json.load(open(sys.argv[1])) data2 = json.load(open(sys.argv[2]))  assert (len(data1) == len(data2)), "Number of rows not equal"  for i in range(len(data1)): for k in data2[i].keys(): data1[i][k] = data2[i][k]  print(json.dumps(data1, indent=4))   if __name__ == '__main__': main() 

НТН

Кришна

То, что вы пришли к выводу, на 100% правильно. Я использую код VBA Prajakta Software 6 лет назад 1

Похожие вопросы