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

如何用Python剔除世界银行API返回JSON中的冗余字段?

解决方法:从世界银行API JSON数据中提取指定字段

嘿,这事儿处理起来挺简单的,我给你两种实用的Python实现方式,你可以根据自己的习惯选:

先看我们的输入示例

首先把你拿到的JSON片段整理成可测试的Python数据:

original_data = [
    {
        'adminregion': {'id': 'SAS', 'iso2code': '8S', 'value': 'South Asia'},
        'capitalCity': 'Kabul',
        'id': 'AFG',
        'incomeLevel': {'id': 'LIC', 'iso2code': 'XM', 'value': 'Low income'},
        'iso2Code': 'AF',
        'latitude': '34.5228',
        'lendingType': {'id': 'IDX', 'iso2code': 'XI', 'value': 'IDA'},
        'longitude': '69.1761',
        'name': 'Afghanistan',
        'region': {'id': 'SAS', 'iso2code': '8S', 'value': 'South Asia'}
    },
    # 可添加更多条目测试
]

方法一:列表推导式(简洁高效)

如果数据量不大,想要一行搞定,列表推导式是最优选择,代码清爽还高效:

processed_data = [
    {
        'id': item['id'],
        'incomeLevel': item['incomeLevel']['value'],
        'name': item['name'],
        'region': item['region']['value']
    }
    for item in original_data
]

简单说就是:遍历原始数据里的每一个国家条目,为每个条目构建只包含你需要字段的新字典,直接把incomeLevel和region嵌套的value值取出来。

方法二:循环遍历(可读性更强+容错性好)

要是你觉得列表推导式太紧凑,或者担心某些条目可能缺失字段导致报错,那用普通循环加安全取值会更稳妥:

processed_data = []
for item in original_data:
    # 构造单条处理后的字典,用get方法设置默认值避免报错
    cleaned_item = {
        'id': item.get('id', '未知ID'),
        'incomeLevel': item.get('incomeLevel', {}).get('value', '未知收入水平'),
        'name': item.get('name', '未知国家'),
        'region': item.get('region', {}).get('value', '未知区域')
    }
    processed_data.append(cleaned_item)

这里用dict.get()代替直接用[]取值,就算某个条目缺了字段,代码也不会崩溃,而是返回你设置的默认值,容错性拉满。

最终效果

不管用哪种方法,处理后的数据都会变成你想要的格式:

# 输出示例
[
    {
        'id': 'AFG',
        'incomeLevel': 'Low income',
        'name': 'Afghanistan',
        'region': 'South Asia'
    }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:18:54