2017-09-23 13 views
-2

私はリストを持っており、そのリストをフィルタリングしていくつかのキー値を取得する必要があります。これはリストです:Pythonリストをフィルタリングする方法は?

"products":[ 
     { 
     "discount":"0.00000", 
     "id":"6f47e339-34a0-8c58-11e7-9f96677d9fcc", 
     "loyalty_value":"0.00000", 
     "price":"0.00000", 
     "price_set":false, 
     "price_total":"0.00000", 
     "product_id":"0af7b240-ab09-11e7-eddc-8cb82351211c", 
     "quantity":1, 
     }, 
     { 
     "discount":"0.00000", 
     "id":"6f47e339-34a0-8c58-11e7-9f966ecf8e5f", 
     "loyalty_value":"0.00000", 
     "price":"3.18182", 
     "price_set":false, 
     "price_total":"3.18182", 
     "product_id":"0af7b240-ab09-11e7-eddc-80d691bbf094", 
     "quantity":1, 
     }, 
     { 
     "discount":"0.00000", 
     "id":"6f47e339-34a0-8c58-11e7-9f96701777b2", 
     "loyalty_value":"0.00000", 
     "price":"2.72727", 
     "price_set":false, 
     "price_total":"2.72727", 
     "product_id":"0af7b240-ab09-11e7-eddc-80a522346b58", 
     "quantity":1, 
     } 

    ] 

私は次のように濾過した後、リストの上から同じリストを取得する必要があります:あなたはあなたの新しいリストのために必要なキーを持つ新しいリストを作成することが

"LstProduct": [ 
    { 
     "product_id": "string", 
     "price": 0, 
     "quantity": 0 
    }, 
    { 
     "product_id": "string", 
     "price": 0, 
     "quantity": 0 
    }, 
    { 
     "product_id": "string", 
     "price": 0, 
     "quantity": 0 
    } 
    ] 

答えて

2

old_listがあなたのdictオブジェクトのリストである

filtered_keys = ["product_id", "price", "quantity"] 

new_list = [{key: element[key] for key in filtered_keys} for element in old_list] 

:その後、としてリストの内包を使用して結果をフィルタリングすることができます。

+0

ありがとうございました。それは私のために働いた。 –

+0

@NitinSherawatをお手伝いします。 SOに関する質問に役立つ回答が見つかった場合は、[最善の回答は受け入れ済み]にしてください(https://meta.stackexchange.com/questions/23138/how-to-accept-the-answer-on-stack -オーバーフロー)。詳細については、[回答を受け入れる方法は?](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) –

+0

既存のリストを変更することをお勧めします新しい –

関連する問題