Словарь в JSON на Python - PullRequest
       4

Словарь в JSON на Python

0 голосов
/ 28 августа 2018

Я пытаюсь прочитать вход из Excel в Python, который я преобразую в словарь, например:

import xlrd, json

d = {}
wb = xlrd.open_workbook('input.xlsx')
sh = wb.sheet_by_index(0)  
data=[]



for i in range(1,sh.nrows):
    d={}
    for j in range(sh.ncols):
        d[sh.cell(0,j).value] = sh.cell(i,j).value

    data.append(d)    
data

Полученные данные имеют формат

[{'Age': 20.0, 'Brothers': 2.0, 'Name': 'Josh', 'Nationality': 'UK'},
 {'Age': 22.0, 'Brothers': 1.0, 'Name': 'Kim', 'Nationality': 'France'}]

Вывод моего файла "json" должен выглядеть именно так

{
'Children':[
{'Age': 20.0, 'Brothers': 2.0, 'Name': 'Josh', 'Nationality': 'UK'},
{'Age': 22.0, 'Brothers': 1.0, 'Name': 'Kim', 'Nationality': 'France'}
]
}

Однако, когда я вызываю json.dumpts (data), я получаю что-то вроде этого

[
  {
    "Name": "Josh",
    "Age": 20.0,
    "Nationality": "UK",
    "Brothers": 2.0
  },
  {
    "Name": "Kim",
    "Age": 22.0,
    "Nationality": "France",
    "Brothers": 1.0
  }
]

Итак, два квестона. Как я могу вставить поле «Дети» в начале и как я могу получить мой точный формат вывода желаний? Спасибо

1 Ответ

0 голосов
/ 29 августа 2018

Попробуйте:

import xlrd, json

d = {}
wb = xlrd.open_workbook('input.xlsx')
sh = wb.sheet_by_index(0)
data=[]

for i in range(1,sh.nrows):
    d={}
    for j in range(sh.ncols):
        d[sh.cell(0,j).value] = sh.cell(i,j).value

    data.append(d)
result={'Children':data}
print(json.dumps(result,indent=2))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...