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

如何从API响应的customFieldValues嵌套字典列表中提取Age的value值

解决方案

核心逻辑是遍历customFieldValues列表,匹配name为Age的字典项后取对应value值即可,你现在的问题是直接把整个自定义字段列表赋值给了Age字段,没有做筛选。

最简修改方案

用next()生成器表达式直接匹配取值,找不到对应字段时默认返回None避免报错:

json_package = []
for row in json_keys:
    SID = row['Id']
    State = row['address']
    # 提取Age字段的核心逻辑
    age = next((field['value'] for field in row['customFieldValues'] if field['name'] == 'Age'), None)
    # 如果需要转为数值类型可以加这行
    # age = int(age) if age is not None else None

    a_key = 'value'
    Handle = row['contacts']
    list_values = [a_list[a_key] for a_list in Handle]
    string = str(list_values).split(",")

    data = {
        'SID': SID,
        'State': State['state'],
        'Age' : age,
        'Email': strip_characters(string[-1]),
    }
    json_package.append(data)

多字段提取优化方案

如果你后续还需要提取其他自定义字段(比如Registration Status、Marital Status等),可以先把自定义字段列表转成键值对字典,不用每次遍历:

json_package = []
for row in json_keys:
    SID = row['Id']
    State = row['address']
    # 把自定义字段转成 {字段名: 字段值} 的字典
    custom_field_map = {field['name']: field['value'] for field in row['customFieldValues']}
    # 直接从字典取值即可
    age = custom_field_map.get('Age')
    registration_status = custom_field_map.get('Registration Status')

    a_key = 'value'
    Handle = row['contacts']
    list_values = [a_list[a_key] for a_list in Handle]
    string = str(list_values).split(",")

    data = {
        'SID': SID,
        'State': State['state'],
        'Age' : age,
        'RegistrationStatus': registration_status,
        'Email': strip_characters(string[-1]),
    }
    json_package.append(data)

注意事项

  • 从你给出的示例数据来看,Age对应的value是字符串格式的数字'35',如果需要用于数值计算,自行做类型转换即可
  • 示例数据中有一处语法问题:'value': Yes 缺少引号,属于API返回的JSON格式错误,如果实际运行遇到该问题,需要先处理JSON解析异常

内容的提问来源于stack exchange,提问作者Antonio

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 15:57:03