[英]JSON response with complex data Structure
我正在尝试从 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:'areaDescription'、'subAreaDescription'、'description'(这个在 'deficiencyArea' 内)、'restricted' 和 'description'(这个'defaultDescription' 中的一个)。
我尝试了一些东西,但没有任何工作。 有什么建议?
一些代码开始。 它创建一个新工作簿并将值写入行。
import json
import openpyxl
data = [
{
"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
}
]
# create workbook
wb = openpyxl.Workbook()
ws = wb.worksheets[0]
row1 = ["id","areaDescription","subAreaDescription","description","restricted","description"]
for i in range(1,7):
ws.cell(1,i).value = row1[i-1]
i = 1
for rec in data:
area = rec["deficiencyArea"]
item = rec["defectiveItem"]
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["subAreaDescription"]
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(filename=filename)
print("{} created with {} rows".format(filename,i-1))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.