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

如何使用countries API筛选数据查找使用人数最多的15种语言

基于Countries API的语言数据查询实现方案

实现思路

  • 数据拉取:调用给定的API拉取所有国家的公开数据,优先处理网络异常、请求失败等边界情况,将返回的JSON数据转为Python字典列表方便后续处理
  • 语言总数统计:遍历每个国家的语言字段,用集合存储所有语言的唯一编码/名称,利用集合自动去重的特性,集合长度就是API收录的语言总数量
  • 使用人数聚合:遍历所有国家数据时,对每个国家包含的每一门语言,累加该国家的总人口数作为该语言的累计使用人数(采用通用统计口径:一国人口全部计入该国所有官方/通用语言的使用人数)
  • Top15筛选:将聚合好的「语言-使用人数」键值对按人数倒序排序,截取前15条即可得到使用人数最多的15种语言

可运行代码示例

依赖安装

首先安装依赖库requests用于发送网络请求:

pip install requests

完整代码

import requests
from collections import defaultdict

# 给定的API地址
API_URL = 'https://restcountries.eu/rest/v2/all'

def main():
    # 1. 拉取API数据
    try:
        resp = requests.get(API_URL, timeout=10)
        resp.raise_for_status()
        countries_data = resp.json()
    except Exception as e:
        print(f"数据拉取失败:{e}")
        return
    
    # 2. 统计语言总数量 + 聚合语言使用人数
    unique_langs = set()
    lang_population = defaultdict(int)

    for country in countries_data:
        country_pop = country.get('population', 0)
        # 遍历当前国家的所有语言
        for lang in country.get('languages', []):
            # 用iso639-1编码作为唯一标识避免同名语言冲突
            lang_code = lang.get('iso639_1')
            lang_name = lang.get('name', '未知语言')
            if lang_code:
                unique_langs.add(lang_code)
                lang_population[f"{lang_name}({lang_code})"] += country_pop
    
    # 3. 输出统计结果
    print(f"API收录的语言总数量:{len(unique_langs)}")
    print("\n全球使用人数最多的15种语言:")
    # 按使用人数倒序排序取前15
    sorted_langs = sorted(lang_population.items(), key=lambda x: x[1], reverse=True)[:15]
    for idx, (lang_name, pop) in enumerate(sorted_langs, 1):
        # 人数格式化方便阅读
        format_pop = f"{pop / 100000000:.2f}亿" if pop >= 100000000 else f"{pop / 10000:.2f}万"
        print(f"{idx}. {lang_name}:{format_pop}")

if __name__ == "__main__":
    main()

运行说明

代码运行后会先输出API收录的语言总数量,再按使用人数从高到低输出前15种语言,人数会自动按亿/万单位格式化方便阅读。如果遇到接口请求失败的情况,会直接打印错误信息退出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:18:03