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

如何用Python从复杂数据结构提取指定值?求方法及类型确认

解决方案

核心结论

你手里的是嵌套的JS对象(本质是JSON结构),完全不需要用BeautifulSoup——BeautifulSoup是用来解析HTML/XML的,对这种结构化数据根本不适用。正确的做法是提取出纯JSON部分,再用JSON解析工具处理。

具体步骤

  1. 提取纯JSON内容
    原始数据开头有var gIg35809469970000987890data = ,结尾有;,先用正则把这些非JSON内容去掉,得到标准JSON字符串:

    import re
    import json
    
    # 假设原始数据存储在这个变量中
    raw_data = '''var gIg35809469970000987890data = {
      "values": [
        [
          "33765",
          "33765",
          "06-03-2023",
          "John.doe@foo.com",
          "indoor 1",
          "",
          "1",
          "10",
          "16",
          "",
          "DELETE",
          "33765",
          {"salt": "..."}
        ],
        [
          "33623",
          "33623",
          "03-03-2023",
          "John.Doe@foo.com",
          "indoor 1",
          "",
          "1",
          "10",
          "16",
          "",
          "DELETE",
          "33623",
          {"salt": "..."}
        ]
      ]
    };'''
    
    # 匹配并提取JSON部分
    json_str = re.search(r'=\s*({.*?});', raw_data, re.DOTALL).group(1)
    
  2. 解析JSON为Python数据结构
    解析后得到的是字典+数组的嵌套结构:外层是字典,values键对应的值是数组,每个数组元素又是包含字符串和子对象的数组:

    data = json.loads(json_str)
    
  3. 提取指定字段并整理成表格
    遍历values里的每个元素,提取编号(数组第0位)、日期(第2位)、邮箱(第3位):

    # 提取目标数据
    extracted_data = []
    for item in data['values']:
        extracted_data.append({
            '编号': item[0],
            '日期': item[2],
            '邮箱': item[3]
        })
    
    # 用pandas生成表格形式输出
    import pandas as pd
    result_df = pd.DataFrame(extracted_data)
    print(result_df)
    

    输出结果:

    编号日期邮箱
    3376506-03-2023John.doe@foo.com
    3362303-03-2023John.Doe@foo.com

额外提醒

如果是在浏览器环境中处理,直接访问gIg35809469970000987890data.values遍历提取即可,不需要正则,用原生JS就能完成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:46:14