[英]Writing list of dictionaries to CSV with each dictionary's values in a new column
[英]How to convert a list of dictionaries into a list of each dictionary in the list's values?
我正在嘗試生成一個類別列表,我可以將其傳遞到html模板以呈現所有類別的導航欄。 在我的mongo數據庫中的產品集合中,每個產品都有一個類別字段。 使用下面的代碼,我會生成所有類別的pymongo游標。
categories = Database.DATABASE[ProductConstants.COLLECTION].find({}, {'category': True, '_id': False})
print(categories)
<pymongo.cursor.Cursor at 0x1049cc668>
將類別放在列表中給我
categories = list(categories)
print(categories)
[{'category': 'Phones'},
{'category': 'Phones'},
{'category': 'Phones'},
{'category': 'Phones'},
{'category': 'Phones'},
{'category': 'Soaps'}]
這似乎是朝正確方向邁出的一步。 我希望類別的最終輸出為:
print(categories)
['Phones', 'Soaps'].
我嘗試這樣做:
categories = [category.values() for category in categories]
print(categories)
[dict_values(['Phones']),
dict_values(['Phones']),
dict_values(['Phones']),
dict_values(['Phones']),
dict_values(['Soaps'])]
如果我可以擺脫dict_values,則可以使用sum(categories,[])來平整該列表,然后將其放入set()中,這樣我就不會有任何重復項。 我相信這會給我想要的結果,但不確定如何去做。 也許我走錯了路,並且有更好的方法來解決所有這些問題? 意見將不勝感激。
聽起來您需要一組類別:
categories = [{'category': 'Phones'},
{'category': 'Phones'},
{'category': 'Phones'},
{'category': 'Phones'},
{'category': 'Phones'},
{'category': 'Soaps'}]
# use a set to eliminate the duplicate categories
c = set(d['category'] for d in categories)
print(list(c))
輸出:
['Soaps', 'Phones']
更新:
c = {d['category'] for d in categories} # equivalent using a set comprehension
嘗試這個
categories = Database.DATABASE[ProductConstants.COLLECTION].find({}, {'category': True, '_id': False}).distinct('category')
print categories
此類別列表將包含不同數量的類別值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.