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

Python中如何访问嵌套数据?附嵌套字典实例

如何访问Python嵌套字典中的深层数据?

嘿,刚好碰到过类似的嵌套结构(看起来像是MongoDB导出的数据对吧?),我来给你一步步讲怎么访问test_scr里的各种数据:

1. 直接定位单个深层数据

这种方式适合你明确知道数据所在层级的情况:

  • 取第一个访问页面的URL:
first_page_url = test_scr["visited_pages"][0]["url"]
print(first_page_url)  # 输出: google.com
  • 取第一个页面的第一个点击坐标:
first_click_x = test_scr["visited_pages"][0]["visited_page_clicks"][0]["x"]
first_click_y = test_scr["visited_pages"][0]["visited_page_clicks"][0]["y"]
print(f"第一个点击位置: ({first_click_x}, {first_click_y})")  # 输出: (887, 35)
  • 处理MongoDB风格的特殊字段(比如$date时间戳、$oid文档ID):
# 转换第一个页面的访问时间戳为Python datetime对象
from datetime import datetime
first_visited_timestamp = test_scr["visited_pages"][0]["visited_on"]["$date"]
first_visited_time = datetime.fromtimestamp(first_visited_timestamp / 1000)
print(f"第一个页面访问时间: {first_visited_time}")

# 获取第二个页面的文档ID
second_page_id = test_scr["visited_pages"][1]["visited_page_id"]["$oid"]
print(f"第二个页面ID: {second_page_id}")

2. 遍历所有嵌套数据

如果需要批量处理所有页面或点击记录,用循环遍历最方便:

  • 遍历所有页面,打印基础信息:
for idx, page in enumerate(test_scr["visited_pages"]):
    # 用get方法避免键缺失报错,比如第三个不完整的页面
    url = page.get("url", "未知URL")
    total_clicks = page.get("total_clicks", 0)
    print(f"第{idx+1}个页面: URL={url}, 总点击数={total_clicks}")
  • 遍历每个页面的所有点击记录:
for page in test_scr["visited_pages"]:
    page_id = page.get("visited_page_id", {}).get("$oid", "未知ID")
    print(f"\n--- 页面 {page_id} 的点击详情 ---")
    # 处理可能没有点击记录的情况
    clicks = page.get("visited_page_clicks", [])
    if not clicks:
        print("无点击记录")
        continue
    for click in clicks:
        click_time = datetime.fromtimestamp(click["created"]["$date"] / 1000)
        print(f"位置: ({click['x']}, {click['y']}), 时间: {click_time}")

3. 避免KeyError的小技巧

你的第三个visited_page结构不完整,直接用[]访问会报错,推荐用dict.get()方法指定默认值:

# 获取第三个页面的总停留时间,不存在则返回0
third_page_time = test_scr["visited_pages"][2].get("total_time_spent_in_minutes", "0")
print(f"第三个页面停留时间: {third_page_time} 分钟")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:49:20