2016-09-08 2 views
2

더 나은 업데이트 :파이썬 사전 분석과 나는이처럼 보이는 입력 사전을

{ "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

prod에서 나는 그것을 파일에서 읽을 것이고 출력은 파일에있을 것이다. GNU 병렬을 사용하여 입력 파일을 침투하여 서버의 모든 코어에 공급하여 프로세스를 병렬화 할 계획입니다. – user3646519

답변

0

입력 dict의 출력을 다시 포맷합니다. 다음의 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]