如何使用 Python 组合 JSON 数据相同键的所有值

我想使用 python 组合 JSON 数据相同键的所有值。任何帮助都将不胜感激。请在下面找到输入数据:


{'MESSAGE_DATA': {'BGEN_CENQO_XTRA_KEY': {'BGEN_CENQO_CLNTCOY': 'A'}}}

{'MESSAGE_DATA': {'BGEN_CENQO_XTRA_KEY': {'BGEN_CENQO_CLNTPFX': 'CN'}}}

{'MESSAGE_DATA': {'BGEN_CENQO_XTRA_KEY': {'BGEN_CENQO_CLNTNUM': '50003159'}}}

我想要的输出格式:


{

"MESSAGE_DATA": {

    "BGEN_CENQO_XTRA_KEY": {

        "BGEN_CENQO_CLNTCOY": "A",

        "BGEN_CENQO_CLNTPFX": "CN",

        "BGEN_CENQO_CLNTNUM": "50003159"

    }

}

}


慕斯王
浏览 69回答 1
1回答

Helenr

from functools import reducelst = [{'MESSAGE_DATA': {'BGEN_CENQO_XTRA_KEY': {'BGEN_CENQO_CLNTCOY': 'A'}}},{'MESSAGE_DATA': {'BGEN_CENQO_XTRA_KEY': {'BGEN_CENQO_CLNTPFX': 'CN'}}},{'MESSAGE_DATA': {'BGEN_CENQO_XTRA_KEY': {'BGEN_CENQO_CLNTNUM': '50003159'}}}]def merge(a, b, path=None):    if path is None: path = []    for key in b:        if key in a:            if isinstance(a[key], dict) and isinstance(b[key], dict):                merge(a[key], b[key], path + [str(key)])            elif a[key] == b[key]:                pass             else:                raise Exception('Conflict at %s' % '.'.join(path + [str(key)]))        else:            a[key] = b[key]    return ad = reduce(merge, lst)字典 d 的结构将是:{'MESSAGE_DATA': {    'BGEN_CENQO_XTRA_KEY': {       'BGEN_CENQO_CLNTCOY': 'A',       'BGEN_CENQO_CLNTNUM': '50003159',       'BGEN_CENQO_CLNTPFX': 'CN'     }}}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python