【问题标题】:Python-Dictionary parsing and update betterPython-Dictionary 解析和更新更好
【发布时间】:2016-09-08 14:18:37
【问题描述】:

我有一个如下所示的输入字典:

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

输出的第一行中_id的值是从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 元素,我希望尽可能高效地完成它。 那么我可以为一百万个字典做得更好吗?

【问题讨论】:

  • 您是从文件中读取这些数据还是已经在内存中?
  • 在产品中,我将从文件中读取它,并且输出将在文件中。我打算使用 GNU parallel 来输出输入文件并将其提供给服务器的所有核心,从而使进程并行化

标签: python dictionary


【解决方案1】:

我重新格式化您输入字典的输出。假设下面的dict是一个list的一个元素,其中有数百万个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]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多