亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 Python 組合 JSON 數據相同鍵的所有值

如何使用 Python 組合 JSON 數據相同鍵的所有值

慕斯王 2023-10-18 20:57:20
我想使用 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"    }}}
查看完整描述

1 回答

?
Helenr

TA貢獻1780條經驗 獲得超4個贊

from functools import reduce


lst = [{'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 a


d = reduce(merge, lst)

字典 d 的結構將是:


{'MESSAGE_DATA': {

? ? 'BGEN_CENQO_XTRA_KEY': {

? ? ? ?'BGEN_CENQO_CLNTCOY': 'A',

? ? ? ?'BGEN_CENQO_CLNTNUM': '50003159',

? ? ? ?'BGEN_CENQO_CLNTPFX': 'CN'

? ? ?}

}}


查看完整回答
反對 回復 2023-10-18
  • 1 回答
  • 0 關注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號