Python 具有复杂数据结构的JSON响应

Python 具有复杂数据结构的JSON响应,python,json,excel,nested,Python,Json,Excel,Nested,我正在尝试从VBA迁移到Python。我正在尝试将结果传递到Excel [ { "id": 1993966466, "deficiencyArea": { "id": 270424374, "area": "18", "areaDescription": "Labour conditions", "subArea": "4", "subA

我正在尝试从VBA迁移到Python。我正在尝试将结果传递到Excel

[
    {
        "id": 1993966466,
        "deficiencyArea": {
            "id": 270424374,
            "area": "18",
            "areaDescription": "Labour conditions",
            "subArea": "4",
            "subAreaDescription": "Health protection, medical care, social security",
            "ismRelated": False
        },
        "defectiveItem": {
            "id": 273058079,
            "code": "18417",
            "description": "Anchoring devices",
            "restricted": False
        },
        "defaultDescription": {
            "id": 742,
            "code": "1047",
            "description": "Not ready for use"
        },
        "groundForDetention": False,
        "recognizedOrganizationRelated": False,
        "accidentalDamage": False,
        "ismRelated": False
    },
    {
        "id": 1993966468,
        "deficiencyArea": {
            "id": 156,
            "area": "07",
            "areaDescription": "Fire safety",
            "subArea": "1",
            "subAreaDescription": None,
            "ismRelated": False
        },
        "defectiveItem": {
            "id": 1358,
            "code": "07105",
            "description": "Fire doors/openings in fire-resisting divisions",
            "restricted": False
        },
        "defaultDescription": {
            "id": 470,
            "code": "1011",
            "description": "Not as required"
        },
        "groundForDetention": False,
        "recognizedOrganizationRelated": False,
        "accidentalDamage": False,
        "ismRelated": False
    }
]
目标是将每个缺陷(每个缺陷一行)的以下键传递给Excel:“区域描述”、“子标题描述”、“描述”(此键位于“缺陷区域”内)、“受限”和“描述”(此键位于“defaultDescription”内)

我试过几件事,但都没试过。
有什么建议吗?

一些代码作为开始。它创建一个新工作簿并将值写入行

导入json
导入openpyxl
数据=[
{
“id”:1993966466,
“缺陷区域”:{
“id”:270424374,
“区域”:“18”,
“区域描述”:“劳动条件”,
“分区”:“4”,
“子标题说明”:“健康保护、医疗保健、社会保障”,
“相关”:错误
},
“缺陷项”:{
“id”:273058079,
“代码”:“18417”,
“说明”:“锚定装置”,
“受限”:错误
},
“defaultDescription”:{
“id”:742,
“代码”:“1047”,
“说明”:“未准备好使用”
},
“检测依据”:假,
“认可或组织相关”:错误,
“意外损坏”:错误,
“相关”:错误
},
{
“id”:1993966468,
“缺陷区域”:{
“id”:156,
“区域”:“07”,
“区域描述”:“消防安全”,
“分区”:“1”,
“子标题说明”:无,
“相关”:错误
},
“缺陷项”:{
“id”:1358,
“代码”:“07105”,
“说明”:“防火分区的防火门/开口”,
“受限”:错误
},
“defaultDescription”:{
“id”:470,
“代码”:“1011”,
“说明”:“不符合要求”
},
“检测依据”:假,
“认可或组织相关”:错误,
“意外损坏”:错误,
“相关”:错误
}
]
#创建工作簿
wb=openpyxl.Workbook()
ws=wb.工作表[0]
第1行=[“id”、“区域描述”、“子标题描述”、“描述”、“限制”、“描述”]
对于范围(1,7)内的i:
ws.cell(1,i).value=row1[i-1]
i=1
对于rec in数据:
面积=rec[“缺陷面积”]
项目=记录[“缺陷项目”]
desc=rec[“defaultDescription”]
i+=1
ws.cell(i,1).value=rec[“id”]
ws.cell(i,2).value=area[“areaDescription”]
ws.cell(i,3).value=area[“subreaddescription”]
ws.cell(i,4).value=item[“description”]
ws.cell(i,5).value=item[“restricted”]
ws.cell(i,6).value=desc[“description”]
filename=“result.xlsx”
wb.save(文件名=文件名)
打印(“{}用{}行创建”。格式(文件名,i-1))

通过
将这些文件传递到excel
您的意思是创建excel格式的文件?例如csv,我希望更新一个xlxs现有文件!“缺陷区”内没有“描述”,你是说“缺陷物品”吗?@CDP1802是的,正好在“缺陷物品”内。@CDP1802谢谢。它像预期的那样工作。我在你的回答中加了一个词。也许你可以帮我。(感谢您对上一评论的更正)非常感谢。我设法让它一次通过几次不同的检查。虽然我一直在尝试获取更多信息,因为HTTP响应比我粘贴在这里的要大得多。我可以学习如何访问JSON节点。也许你能给我一个机会,让我得到所需的全部信息。我可以在某处共享完整的JSON。@Eduardo是否将响应保存到文本文件?。我快速浏览了一个firefox插件JSONView,它可能会有一些用处。在您发布的示例中,我必须用“False”替换False,用“None”替换None。我通过更加熟悉您的代码,实现了我的目标。再次感谢!