u'username': u'User 01', u'_id': ObjectId('53f4125e8c92eb815be3ce07'),
u'username': u'User 02', u'_id': ObjectId('53f4125e8c92eb815be3cc09')
みたいなデータが入っている場合。
このデータをリストにしたいけど、_idとかが邪魔なのでこれを省く時の話。
MongoDBさんはu'_id'が邪魔。
del x[u'_id']
とかで取っ払いたい。
しかしdelを入れることが出来ない?
res_list = [x for x in room_mate if not u'_id' in x]
とすれば消すというよりそもそも条件からu'_id'を外すのでこれでOKかな?
っと思ったが、これだとu'_id'を含む列がそもそも入らない・・・
lambdaを使う?ラムダ式とか式なら使えるっぽい。 popも関数なので式なのでpopを使う? del文は文だから文は使えない?
python - Deleting key/value from list of dictionaries using lambda and map - Stack Overflow を見た。
res_list = [(lambda x: x.pop(u'_id')) for x in room_mate]
コレでエラーが出ない。
ちなみに、文と式の違いはここのはてなブログがいいかも? Pythonでの式(Expression)と文(Statement) - minus9d's diary
パーフェクトPython (PERFECT SERIES 5)
- 作者: Pythonサポーターズ
- 出版社/メーカー: 技術評論社
- 発売日: 2013/03/05
- メディア: 大型本
- 購入: 1人 クリック: 65回
- この商品を含むブログ (20件) を見る