我有4個項目。如何添加字典中的字典
item['bigCtgr'] = 'item'
item['smaCtgr'] = 'food'
item['ssCtgr'] = 'apple'
item['sCtgr'] = 'red'
我將多次添加到process_item。 所以我想讓這樣的結構。 喜歡的東西
{"item" :
{"food":
{"apple":
{"green":NULL},
{"red":NULL}},
{"banana":
{"yellow":NULL},
{"green":NULL}},
}
{"sweet":
{"candy":
{"yellow":NULL}}
}
}
類別,但我的代碼不能正常工作,我不知道爲什麼。
class CategoryPipeline(object):
global ctgr
ctgr = {}
def __init__(self):
global file
file = open("test.json","w")
def process_item(self, item, spider):
if item['bigCtgr'] not in ctgr.keys():
ctgr[item['bigCtgr']] = {item['smaCtgr']: {item['ssCtgr'] : {item['sCtgr'] : 'NULL'}}}
if item['smaCtgr'] not in ctgr[item['bigCtgr']].keys():
ctgr[item['bigCtgr']][item['smaCtgr']] = {item['ssCtgr']: {item['sCtgr'] : 'NULL'}}
elif item['ssCtgr'] not in ctgr[item['bigCtgr']][item['smaCtgr']].keys():
ctgr[item['bigCtgr']][item['smaCtgr']][item['ssCtgr']] = {item['sCtgr'] : 'NULL'}
else:
ctgr[item['bigCtgr']][item['smaCtgr']][item['ssCtgr']][item['sCtgr']] = 'NULL'
def __del__(self):
b = json.dumps(ctgr, ensure_ascii=False).encode('utf-8')
file.write(b)
file.write('\n')
file.close()
我該如何編碼?
不太清楚,你想的瓦萊斯爲'NULL','bigCtgr'的意義是什麼等 –
我只想使用僅字典的層次結構.. – Amily
你可以把它作爲樣本輸入和期望的輸出,所以我可以更好地測試它和t ry給你一個答案 –