Im neu zu Python und versuchenPython Listenkomprehension - Extrahieren von verschachtelten Daten
einige verschachtelten Daten zu extrahierenHier ist die JSON für zwei Produkte. Ein Produkt kann zu null oder mehr Kategorien gehören
{
"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"
}
Ich möchte herausfinden, zu welchen Kategorien ein Produkt gehört.
zur Extraktion Mein Code ist wie folgt: -
for x in products:
productsInCategory = []
for y in x['Categories']:
for z in y['Category']:
if z['CategoryID'] == categories[i]['CategoryID']:
productsInCategory.append(x)
Dieses Problem ist in diesem Fall, dass das zweite Element enthält nur eine Kategorie, nicht eine Reihe von Kategorien, so diese Linie
for z in y['Category']:
Durchläuft die Eigenschaften eines Kategorie- und nicht eines Kategorie-Arrays und bewirkt daher, dass mein Code fehlschlägt.
Wie kann ich davor schützen? Und kann das eleganter mit Listenverständnis Syntax geschrieben werden?
Danke - das funktionierte ein Leckerbissen – David