새로운 중첩 된 데이터를 추출하려고했습니다.Python 목록 이해 - 중첩 된 데이터에서 추출
다음은 두 제품에 대한 JSON입니다. 제품이 0 개 이상의 카테고리에 속할 수 있습니다.
{
"Item":[
{
"ID":"170",
"InventoryID":"170",
"Categories":[
{
"Category":[
{
"CategoryID":"444",
"Priority":"0",
"CategoryName":"Paper Mache"
},
{
"CategoryID":"479",
"Priority":"0",
"CategoryName":"Paper Mache"
},
{
"CategoryID":"515",
"Priority":"0",
"CategoryName":"Paper Mache"
}
]
}
],
"Description":"Approximately 9cm wide x 4cm deep.",
"SKU":"111931"
},
{
"ID":"174",
"InventoryID":"174",
" Categories":[
{
"Category":{
"CategoryID":"888",
"Priority":"0",
"CategoryName":"Plaster"
}
}
],
"Description":"Plaster Mould - Australian Animals",
"SKU":"110546"
}
],
"CurrentTime":"2016-08-22 11:52:27",
"Ack":"Success"
}
제품이 속하는 범주를 찾으려합니다.
다음과 같이 추출을위한 내 코드는 다음과 같습니다 -
for x in products:
productsInCategory = []
for y in x['Categories']:
for z in y['Category']:
if z['CategoryID'] == categories[i]['CategoryID']:
productsInCategory.append(x)
이 문제는이 경우에 두 번째 항목이 하나 개의 카테고리,이 라인
for z in y['Category']:
그래서 범주하지 배열을 포함한다는 것입니다 범주 배열이 아닌 범주 속성을 반복하므로 코드가 실패하게됩니다.
어떻게이 문제를 방지 할 수 있습니까? 그리고 이것은 목록 이해 (list comprehension) 구문으로 더 우아하게 작성할 수 있습니까?
감사합니다 - 그 치료는 – David