Python词典解析与更新b

2024-10-04 05:21:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个输入字典,它看起来像这样:

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

我需要输出如下所示:

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

输出的第一行中的\u id的值是从付款\u 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元素,我希望尽可能高效地完成。 那么我能为一百万条字典做得更好吗?你知道吗


Tags: idindex字典typecreatelinestaticblog
1条回答
网友
1楼 · 发布于 2024-10-04 05:21:20

我重新格式化输入dict的输出。假设下面的dict是一个列表的元素,其中有数百万个dict

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

使用列表来提取付款id并创建新的dict

[{ "create":  { "_index": "website", "_type": "blog", "_id": d['payment']['payment_id']}} 
for d in my_list_of_dict]

相关问题 更多 >