You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JMESPath提取JSON中全部accountId对应的#value值?

问题:提取JSON中所有_name为accountId的#value值

需要提取JSON数据中所有_name属性等于accountId的#value值,当前使用JMESPath的Python代码仅能捕获每个对象中的第一个符合条件的值,但部分对象存在多个_name为accountId的属性,无法获取全部对应值。

JSON示例

[{"_href":"goldenSource-counterpartySrc_transformationFlow_CUS_IIALFSG400_-820452415","identifier":[{"#value":"1006009","_name":"legalEntityId"},{"#value":"1006009","_name":"Fenergo:LegalEntityId"},{"#value":"INSIGHT IM GBL-INS AL-FSG00400","_name":"shortName"},{"#value":"INSIGHT INVESTMENT MANAGEMENT (GLOBAL) AC FSG00400","_name":"longName"},{"#value":"INSIGHT INVESTMENT MANAGEMENT (GLOBAL) AC FSG00400","_name":"bloombergCompanyName"},{"#value":"INSAGENT G","_name":"GROUPREF"},{"#value":"IINVGB21XXX","_name":"BIC"},{"#value":"CUS_IIALFSG400","_name":"STRATREF"},{"#value":"1548","_name":"CUSTREF"},{"#value":"IIALFSG400","_name":"accountId"},{"#value":"INSIGHT IM GBL-INS AL-FSG00400","_name":"accountName"}]},{"_href":"goldenSource-counterpartySrc_transformationFlow_CUS_IIALILFEUL_1642989696","identifier":[{"#value":"1006010","_name":"legalEntityId"},{"#value":"1006010","_name":"Fenergo:LegalEntityId"},{"#value":"INSIGHT IM GBL-INS AL-ILFEUL","_name":"shortName"},{"#value":"INSIGHT INVESTMENT MANAGEMENT (GLOBAL) AC ILFEUL","_name":"longName"},{"#value":"INSIGHT INVESTMENT MANAGEMENT (GLOBAL) AC ILFEUL","_name":"bloombergCompanyName"},{"#value":"INSAGENT G","_name":"GROUPREF"},{"#value":"IINVGB21XXX","_name":"BIC"},{"#value":"CUS_IIALILFEUL","_name":"STRATREF"},{"#value":"1529","_name":"CUSTREF"},{"#value":"IIALILFEUL","_name":"accountId"},{"#value":"INSIGHT IM GBL-INS AL-ILFEUL","_name":"accountName"}]},{"_href":"goldenSource-counterpartySrc_transformationFlow_CUS_IIALFSG372_1317864966","identifier":[{"#value":"1006011","_name":"legalEntityId"},{"#value":"1006011","_name":"Fenergo:LegalEntityId"},{"#value":"INSIGHT IM GBL-INS AL- FSG372","_name":"shortName"},{"#value":"INSIGHT INVESTMENT MANAGEMENT (GLOBAL) AC FSG00372","_name":"longName"},{"#value":"INSIGHT INVESTMENT MANAGEMENT (GLOBAL) AC FSG00372","_name":"bloombergCompanyName"},{"#value":"INSAGENT G","_name":"GROUPREF"},{"#value":"IINVGB21XXX","_name":"BIC"},{"#value":"CUS_IIALFSG372","_name":"STRATREF"},{"#value":"1484","_name":"CUSTREF"},{"#value":"IIALFSG372","_name":"accountId"},{"#value":"INSIGHT IM GBL-INS AL- FSG372","_name":"accountName"}]},{"_href":"goldenSource-counterpartySrc_transformationFlow_CUS_DBALP29M_1573801127","identifier":[{"#value":"1006012","_name":"legalEntityId"},{"#value":"1006012","_name":"Fenergo:LegalEntityId"},{"#value":"DEUT BK-LDN BR-DB AL-ALP29M","_name":"shortName"},{"#value":"DEUTSCHE BANK AG (AS AGENT LENDER) AC ALP29M","_name":"longName"},{"#value":"DEUTSCHE BANK AG (AS AGENT LENDER) AC ALP29M","_name":"bloombergCompanyName"},{"#value":"DB AGENT G","_name":"GROUPREF"},{"#value":"DEUTGB2LASL","_name":"BIC"},{"#value":"CUS_DBALP29M","_name":"STRATREF"},{"#value":"914","_name":"CUSTREF"},{"#value":"DBALP29M","_name":"accountId"},{"#value":"DEUT BK-LDN BR-DB AL-ALP29M","_name":"accountName"},{"#value":"DBLP29MTRI","_name":"accountId"},{"#value":"DEUTS BK-LDN BR-DB AL-T-ALP29M","_name":"accountName"}]},{"_href":"goldenSource-counterpartySrc_transformationFlow_CUS_DBALALP034_-1801476458","identifier":[{"#value":"1006013","_name":"legalEntityId"},{"#value":"1006013","_name":"Fenergo:LegalEntityId"},{"#value":"DEUT BK-LDN BR-DB AL-ALP034","_name":"shortName"},{"#value":"DEUTSCHE BANK AG (AS AGENT LENDER) AC ALP034","_name":"longName"},{"#value":"DEUTSCHE BANK AG (AS AGENT LENDER) AC ALP034","_name":"bloombergCompanyName"},{"#value":"DB AGENT G","_name":"GROUPREF"},{"#value":"DEUTGB2LASL","_name":"BIC"},{"#value":"CUS_DBALALP034","_name":"STRATREF"},{"#value":"968","_name":"CUSTREF"},{"#value":"DBLP034TRI","_name":"accountId"},{"#value":"DEUTS BK-LDN BR-DB AL-T ALP034","_name":"accountName"},{"#value":"DBALALP034","_name":"accountId"},{"#value":"DEUT BK-LDN BR-DB AL-ALP034","_name":"accountName"}]},{"_href":"goldenSource-counterpartySrc_transformationFlow_CUS_DBALP29R_-1958336502","identifier":[{"#value":"1006014","_name":"legalEntityId"},{"#value":"1006014","_name":"Fenergo:LegalEntityId"},{"#value":"DEUT BK-LDN BR-DB AL-ALP29R","_name":"shortName"},{"#value":"DEUTSCHE BANK AG (AS AGENT LENDER) AC ALP29R","_name":"longName"},{"#value":"DEUTSCHE BANK AG (AS AGENT LENDER) AC ALP29R","_name":"bloombergCompanyName"},{"#value":"DB AGENT G","_name":"GROUPREF"},{"#value":"DEUTGB2LASL","_name":"BIC"},{"#value":"CUS_DBALP29R","_name":"STRATREF"},{"#value":"929","_name":"CUSTREF"},{"#value":"DBLP29RTRI","_name":"accountId"},{"#value":"DEUTS BK-LDN BR-DB AL-T-ALP29R","_name":"accountName"},{"#value":"DBALP29R","_name":"accountId"},{"#value":"DEUT BK-LDN BR-DB AL-ALP29R","_name":"accountName"}]},{"_href":"goldenSource-counterpartySrc_transformationFlow_CUS_DBALP29P_-2120542118","identifier":[{"#value":"1006015","_name":"legalEntityId"},{"#value":"1006015","_name":"Fenergo:LegalEntityId"},{"#value":"DEUT BK-LDN BR-DB AL-ALP29P","_name":"shortName"},{"#value":"DEUTSCHE BANK AG (AS AGENT LENDER) AC ALP29P","_name":"longName"},{"#value":"DEUTSCHE BANK AG (AS AGENT LENDER) AC ALP29P","_name":"bloombergCompanyName"},{"#value":"DB AGENT G","_name":"GROUPREF"},{"#value":"DEUTGB2LASL","_name":"BIC"},{"#value":"CUS_DBALP29P","_name":"STRATREF"},{"#value":"974","_name":"CUSTREF"},{"#value":"DBLP29PTRI","_name":"accountId"},{"#value":"DEUTS BK-LDN BR-DB AL-T-ALP29P","_name":"accountName"},{"#value":"DBALP29P","_name":"accountId"},{"#value":"DEUT BK-LDN BR-DB AL-ALP29P","_name":"accountName"}]},{"_href":"goldenSource-counterpartySrc_transformationFlow_CUS_DBALALP032_-602699160","identifier":[{"#value":"1006016","_name":"legalEntityId"},{"#value":"1006016","_name":"Fenergo:LegalEntityId"},{"#value":"DEUT BK-LDN BR-DB AL-ALP032","_name":"shortName"},{"#value":"DEUTSCHE BANK AG (AS AGENT LENDER) AC ALP032","_name":"longName"},{"#value":"DEUTSCHE BANK AG (AS AGENT LENDER) AC ALP032","_name":"bloombergCompanyName"},{"#value":"DB AGENT G","_name":"GROUPREF"},{"#value":"DEUTGB2LASL","_name":"BIC"},{"#value":"CUS_DBALALP032","_name":"STRATREF"},{"#value":"966","_name":"CUSTREF"},{"#value":"DBALALP032","_name":"accountId"},{"#value":"DEUT BK-LDN BR-DB AL-ALP032","_name":"accountName"},{"#value":"DBLP032TRI","_name":"accountId"},{"#value":"DEUTS BK-LDN BR-DB AL-T ALP032","_name":"accountName"}]},{"_href":"goldenSource-counterpartySrc_transformationFlow_CUS_DBALP29X_717263244","identifier":[{"#value":"1006017","_name":"legalEntityId"},{"#value":"1006017","_name":"Fenergo:LegalEntityId"},{"#value":"DEUT BK-LDN BR-DB AL-ALP29X","_name":"shortName"},{"#value":"DEUTSCHE BANK AG (AS AGENT LENDER) AC ALP29X","_name":"longName"},{"#value":"DEUTSCHE BANK AG (AS AGENT LENDER) AC ALP29X","_name":"bloombergCompanyName"},{"#value":"DB AGENT G","_name":"GROUPREF"},{"#value":"DEUTGB2LASL","_name":"BIC"},{"#value":"CUS_DBALP29X","_name":"STRATREF"},{"#value":"930","_name":"CUSTREF"},{"#value":"DBLP29XTRI","_name":"accountId"},{"#value":"DEUTS BK-LDN BR-DB AL-T-ALP29X","_name":"accountName"},{"#value":"DBALP29X","_name":"accountId"},{"#value":"DEUT BK-LDN BR-DB AL-ALP29X","_name":"accountName"}]},{"_href":"goldenSource-counterpartySrc_transformationFlow_CUS_DBALALP031_2013821822","identifier":[{"#value":"1006018","_name":"legalEntityId"},{"#value":"1006018","_name":"Fenergo:LegalEntityId"},{"#value":"DEUT BK-LDN BR-DB AL-ALP031","_name":"shortName"},{"#value":"DEUTSCHE BANK AG (AS AGENT LENDER) AC ALP031","_name":"longName"},{"#value":"DEUTSCHE BANK AG (AS AGENT LENDER) AC ALP031","_name":"bloombergCompanyName"},{"#value":"DB AGENT G","_name":"GROUPREF"},{"#value":"DEUTGB2LASL","_name":"BIC"},{"#value":"CUS_DBALALP031","_name":"STRATREF"},{"#value":"964","_name":"CUSTREF"},{"#value":"DBLP031TRI","_name":"accountId"},{"#value":"DEUTS BK-LDN BR-DB AL-T ALP031","_name":"accountName"},{"#value":"DBALALP031","_name":"accountId"},{"#value":"DEUT BK-LDN BR-DB AL-ALP031","_name":"accountName"}]}]

现有Python代码

cpty_fenergo = []
date = "2022-10-07"

cdw_legalEntity = "http://svc-alt-uat-cdw/identifier/legalEntityClients/?yyyy-mm-dd=2022-10-07&limit=10"


download_file(
    cdw_legalEntity, countsCDWdatasimple(cdw_legalEntity), "cdw_legalEntity.csv"
)

f_cpty = (
    open(f"{tempdir}\\cdw_legalEntity.csv", encoding="cp437").read().replace("\n", "")
)
json_cpty = json.loads(f_cpty, strict=False)


for i, doc in enumerate(json_cpty):

    try:
        group_ref = jmespath.search(f"identifier[?_name == 'GROUPREF']", doc)
        [0]["#value"]
    except:
        group_ref = ""
    try:  # identifier
        cpty_id = jmespath.search(f"identifier[?_name == 'accountId']", doc,)
        [0]["#value"]
    except:
        cpty_id = ""
    try:
        legalEntityId = jmespath.search(f"identifier[?_name == 'legalEntityId']", doc,)
        [0]["#value"]
    except:
        legalEntityId = ""

    cpty_fenergo.append(cpty_id)
    # cpty_fenergo.append((legalEntityId, cpty_id, group_ref)) 

# make list unique
cpty_fnId = list(set(cpty_fenergo))


print(len(cpty_fnId))
print(cpty_fnId)

#output:
10
['IIALFSG372', 'IIALFSG400', 'DBLP034TRI', 'IIALILFEUL', 'DBLP29XTRI', 'DBLP29RTRI', 'DBLP29PTRI', 'DBALP29M', 'DBLP031TRI', 'DBALALP032']

解决方案

1. 优化JMESPath表达式

原表达式仅筛选出符合条件的identifier对象数组,要直接提取所有#value,使用JMESPath的投影语法:

"identifier[?_name == 'accountId'].#value"

该表达式会返回所有_name为accountId的对象的#value组成的列表,无需手动取第一个元素。

2. 修改代码逻辑

遍历每个JSON对象时,获取所有符合条件的accountId值,并用extend将这些值添加到结果列表中,而不是append整个列表。修改后的完整代码如下:

cpty_fenergo = []
date = "2022-10-07"

cdw_legalEntity = "http://svc-alt-uat-cdw/identifier/legalEntityClients/?yyyy-mm-dd=2022-10-07&limit=10"

download_file(
    cdw_legalEntity, countsCDWdatasimple(cdw_legalEntity), "cdw_legalEntity.csv"
)

f_cpty = (
    open(f"{tempdir}\\cdw_legalEntity.csv", encoding="cp437").read().replace("\n", "")
)
json_cpty = json.loads(f_cpty, strict=False)

for doc in json_cpty:
    # 获取当前对象下所有符合条件的accountId值,无匹配时返回空列表
    account_ids = jmespath.search("identifier[?_name == 'accountId'].#value", doc) or []
    # 将所有值添加到结果列表
    cpty_fenergo.extend(account_ids)

# 去重处理
cpty_fnId = list(set(cpty_fenergo))

print(len(cpty_fnId))
print(cpty_fnId)

3. 代码说明

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 12:25:40