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

使用BeautifulSoup解析HTML表格如何按指定字段导出结构化JSON

调整后可直接运行的代码
import json
from bs4 import BeautifulSoup

# 假设你已经完成了页面解析得到soup对象
find_table = soup.find("table", id="viewAllSeriesTable")
# 按行遍历tbody下的所有tr
tbody_rows = find_table.select("tbody tr")
fields = ["id", "seriesName", "clientName", "Brand"]
data = []

for row in tbody_rows:
    # 提取当前行所有td的文本
    tds = [td.get_text(strip=True) for td in row.find_all("td")]
    # 组装成字典,id转为整数类型
    row_dict = dict(zip(fields, tds))
    row_dict["id"] = int(row_dict["id"])
    data.append(row_dict)

# 写入JSON文件,indent=2格式化输出更易读
with open("data_file.json", "w", encoding="utf-8") as write_file:
    json.dump(data, write_file, indent=2, ensure_ascii=False)
核心修改点说明
  • 原代码直接提取所有td生成一维列表,没有按行分组,修改后先遍历tbody的每一行tr,保证每行数据对应一条完整记录
  • 提前定义和表头顺序一致的字段列表,通过zip方法把td内容和字段一一对应生成结构化字典
  • 对id字段做了整数类型转换,匹配你期望的输出格式
  • 写入文件时加了encoding="utf-8"避免中文乱码,indent=2输出格式化的JSON,可读性更高

运行后输出的data_file.json格式会是:

[
  {
    "id": 9127,
    "seriesName": "a",
    "clientName": "A",
    "Brand": "B"
  }
]

如果有多行数据会自动在列表中追加对应字典对象,符合常规结构化JSON存储规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 13:09:02