Python 使用xlrd写入多层JSON

Python 使用xlrd写入多层JSON,python,json,xlrd,Python,Json,Xlrd,我在获取JSON输出时遇到了一些问题。我试图做的是使用python解析Excel文件以创建JSON输出。这是一个大规模的项目,我正在做的时刻,将大大加快事情。我感谢您的任何意见:) 这是我想要的输出: "classes": [ { "name": "Defend Class 2", "cohort": 1, "root_folder"

我在获取JSON输出时遇到了一些问题。我试图做的是使用python解析Excel文件以创建JSON输出。这是一个大规模的项目,我正在做的时刻,将大大加快事情。我感谢您的任何意见:)

这是我想要的输出:

    "classes": [
    {
        "name": "Defend Class 2",
        "cohort": 1,
        "root_folder": "DF-L2-C1",
        "template_prefix": "template.",
        "vm_prefix":"student-",
        "resource_pool":"S1-DC-LMS2CL-001",
        "pods": 22,
        "vds": "S1-DC-LMS2DVS-001",
        "portgroup_base": "LAB-PS-DEF-",
        "vlans": {
            "required": 4,
            "start": 1500,
            "end": 1587,
            "rcn_start": 1303
            },
  
然而,这是我目前得到的:

    "classes": [
        {
            "name": "Defend Class 2",
            "cohort": 1,
            "root_folder": "DF-L2-C1",
            "template_prefix": "template.",
            "vm_prefix": "student-",
            "resource_pool": "S1-DC-LMS2CL-001",
            "pods": 22,
            "vds": "S1-DC-LMS2DVS-001",
            "portgroup_base": "LAB-PS-DEF-"
        },
我正在努力解决“VLAN”的识别部分。以下是我的代码:

import xlrd
from collections import OrderedDict
import simplejson as json

wb = xlrd.open_workbook('test.xlsx')
classes = wb.sheet_by_index(0)

vms_list = []

for rownum in range(1, classes.nrows):
    vms = OrderedDict()
    row_values = classes.row_values(rownum)
    vms['name'] = row_values[0]
    vms['cohort'] = int(row_values[1])
    vms['root_folder'] = row_values[2]
    vms['template_prefix'] = row_values[3]
    vms['vm_prefix'] = row_values[4]
    vms['resource_pool'] = row_values[5]
    vms['pods'] = int(row_values[6])
    vms['vds'] = row_values[7]
    vms['portgroup_base'] = row_values[8]
    vlan_list = []
    for rownum in range(1, classes.nrows):
        vlan = OrderedDict()
        row_values = classes.row_values(rownum)
        vlan['required'] = int(row_values[9])
        vlan['start'] = int(row_values[10])
        vlan['end'] = int(row_values[11])
        vlan['rcn_start'] = int(row_values[12])
        vlan_list.append(vlan)

    vlan_list = {'vlans': vlan_list}
    vms_list.append(vms)

vms_list = {'classes' : vms_list}

j = json.dumps(vms_list, indent=4)

with open('data.json', 'w') as f:
    f.write(j)
有什么想法吗?
谢谢

你似乎对类型有些混淆<代码>vlan\u列表已转换为字典。然后就再也不用了。你似乎对类型有些混淆<代码>vlan\u列表已转换为字典。然后再也不用了。