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

如何从伦敦空气质量API返回的JSON字典中提取@Value值?

提取伦敦空气质量API返回的所有@Value值

核心思路

返回的JSON结构层级为:RawAQData → Data(数组)→ 每个元素是包含@Value的字典。通过字典键取值+遍历数组即可提取所有目标值。

修改后的完整代码

import datetime
import requests

def get_live_data_from_api(site_code='MY1', species_code='NO', start_date=None, end_date=None):
    start_date = datetime.date.today() if start_date is None else start_date
    end_date = start_date + datetime.timedelta(days=1) if end_date is None else end_date

    endpoint = "https://api.erg.ic.ac.uk/AirQuality/Data/SiteSpecies/SiteCode={site_code}/SpeciesCode={species_code}/StartDate={start_date}/EndDate={end_date}/Json"
    url = endpoint.format(
        site_code=site_code,
        species_code=species_code,
        start_date=start_date,
        end_date=end_date
    )

    res = requests.get(url).json()
    # 提取包含所有测量数据的数组
    data_entries = res['RawAQData']['Data']
    # 遍历数组,收集所有@Value值
    all_values = [entry['@Value'] for entry in data_entries]
    
    # 可选:过滤空值并转换为数值类型(方便后续计算分析)
    filtered_numeric_values = [float(val) for val in all_values if val.strip() != '']
    
    print("所有原始@Value值:", all_values)
    print("过滤后的数值型值:", filtered_numeric_values)
    return all_values, filtered_numeric_values

# 调用示例
get_live_data_from_api()

关键步骤说明

  • 通过res['RawAQData']['Data']直接获取存储所有测量记录的数组
  • 使用列表推导式遍历数组,每个元素通过完整键名'@Value'取值(注意键名包含@符号,必须完全匹配)
  • 可选处理逻辑:API返回的部分@Value可能是空字符串,可通过过滤+类型转换得到可用的数值数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 08:25:19