2016-09-08 9 views
2

より良い更新:のPython-辞書構文解析と、私はこのようになります入力の辞書を持っている

{ "create": 
    { "_index": "website", "_type": "blog", "_id": "AAHPW34190"}} 
{"payment_id": "AAHPW34190", "clm_list": 
    {"dtl": 
     [{"clm_id": "1A2345"}, 
     {"clm_id": "9999"} 
     ]}, 
    "payment_amt": "20"} 

最初の_idの値を:

{"payment": 
    {"payment_id": "AAHPW34190", "clm_list": 
     {"dtl": 
      [{"clm_id": "1A2345"}, 
      {"clm_id": "9999"} 
      ]}, 
     "payment_amt": "20"}} 

私はこのように見える出力を必要とします出力の行はpayment_idから導出されます。 私は以下のようにして、簡単に上記の出力を得ることができます:

static_line={ "create": { "_index": "website", "_type": "blog", "_id": "0"}} 
orig={"payment": {"payment_id": "AAHPW34190", "clm_list": {"dtl": [{"clm_id": "1A2345"}, {"clm_id": "9999"}]}, "payment_amt": "20"}}` 
sec_line=orig["payment"] 
static_line["_id"]=sec_line["payment_id"]` 

しかし、私の入力は万個のdict要素になるだろう、と私は可能な限り効率的にそれをやってみたいです。 私は100万のディクテーションのためにそれをより良くすることができますか?

+0

ファイルからこのデータを読み込むか、それがメモリに既にあるされている新しい辞書を作成するには、リストの内包表記を使用できますか? –

+0

私はファイルから読み込み、出力はファイルになります。 GNU並列を使って入力ファイルを吐き出し、それをサーバーのすべてのコアに供給することで、プロセスを並列化する予定です – user3646519

答えて

0

入力ディクテーションの出力を再フォーマットします。次のdictがリストの要素であり、何百万というdictが存在するとします。

{"payment": {"payment_id": "AAHPW34190", 
       "clm_list": {"dtl": [{"clm_id": "1A2345"}, {"clm_id":"9999"}]}, 
      "payment_amt": "20"} 
} 

payment_idを抽出し、

[{ "create": { "_index": "website", "_type": "blog", "_id": d['payment']['payment_id']}} 
for d in my_list_of_dict] 
関連する問題