如何解析GA API返回的特殊格式JSON以提取各城市网站访问量数据
问题解答
报错原因
- 你对返回的JSON结构层级判断错误:
json.loads()返回的最外层数组的每个元素,一级键只有columnHeader和data,不存在直接的dimensions键,直接调用x['dimensions']自然触发KeyError - 额外问题:你采用逐行读取解析的方式不符合当前JSON的格式,这个JSON是完整的嵌套结构,不是行存储的JSON Lines格式,不需要逐行加载解析
正确提取代码
你需要的城市和对应访客数据,都存储在data下的rows数组里,每个row的dimensions[0]是城市名,metrics[0]['values'][0]是对应访客数,实现代码如下:
import json # 直接加载整个JSON文件 with open("test.json", "r", encoding="utf-8") as f: raw_data = json.load(f) # 提取数据行 data_rows = raw_data[0]["data"]["rows"] city_visits = [] for row in data_rows: city = row["dimensions"][0] # 访客数转成整数方便后续统计计算 visit_count = int(row["metrics"][0]["values"][0]) # 可选:过滤掉无效的(not set)数据 if city != "(not set)": city_visits.append({"city": city, "visit_count": visit_count}) print(f"城市:{city},访问量:{visit_count}")
内容的提问来源于stack exchange,提问作者gustavo matteo
相关产品推荐
相关产品推荐

