pandas读取HTML表格与JSON数据的完整指南

周予安
周予安
发布时间:2026-10-11| 1人浏览过
原创

在使用Python进行数据分析时,经常需要从网页或配置文件中提取结构化内容。本文详细演示如何利用pandas库直接读取HTML网页表格与JSON文件数据,涵盖基础导入、数据清洗(去空值/类型转换)、统计分析方法,以及处理读取JSON时常见的“Trailing data”报错修复方案,助你快速完成数据获取与预处理工作。

pandas读取HTML与JSON数据实战指南

第1步:准备环境与初始化代码结构

目的:搭建基础运行环境,确保解析功能可用。
入口与动作:通过包管理器安装核心依赖,并在脚本头部引入命名空间。

pip install pandas

安装完成后,初始化全局引用,后续所有读写操作均以此对象展开:

import pandas as pd

第2步:读取并清洗HTML网页表格数据

目的:将网页中的结构化表格提取为DataFrame对象,便于后续计算。
入口与动作:使用pd.read_html()函数,支持传入本地文件路径或远程URL。
重要参数与结果:该函数会自动扫描DOM中的<table>节点,返回一个包含所有匹配表格的列表。若业务仅需首个表格,通过索引[0]获取即可。

tables = pd.read_html('http://example.com/table.html')
df_html = tables[0]

完成状态判断:成功提取后,控制台可预览结构。查看前几行确认列名与数据对齐:

print(df_html.head())

数据清洗与转换:原始网页常含无效占位符或缺失值,需清理并统一数据类型。例如删除含缺失值的行、移除多余列,并将带货币符号的价格列转为浮点数:

clean_df = df_html.dropna().drop(columns=['Unnamed: 0'])
clean_df['Price'] = clean_df['Price'].str.replace('$', '').astype(float)

统计分析:清洗完毕后,可直接调用内置聚合方法计算核心指标:

mean_price = clean_df['Price'].mean()
median_price = clean_df['Price'].median()
std_price = clean_df['Price'].std()

第3步:读取并重塑JSON结构化数据

目的:解析嵌套或扁平的JSON文件/流,转换为二维表格格式。
入口与动作:调用pd.read_json(),同样支持本地路径与URL。

df_json = pd.read_json('data.json')

数据维护操作:

  • 缺失值处理:根据分析需求选择保留或删除。删除含空值行/列使用df.dropna();将空值填充为固定值使用df.fillna(0)。
  • 类型转换与透视:使用.astype(int)强制转换列类型。若数据为长表格式,可通过df.pivot(index='key_col', columns='time_col', values='value_col')转为宽表。

分组排序与导出:利用groupby()与sum()/mean()进行维度聚合,sort_values()按目标列排序。分析完成后,可一键保存为通用格式:

df.to_csv('output.csv', index=False)
df.to_excel('output.xlsx', index=False)

第4步:排查读取JSON时的Trailing data报错

问题现象:执行pd.read_json()时报错ValueError: Trailing data,通常是因为源文件末尾存在非标准JSON格式的额外逗号、括号或换行符。

解决方法A(推荐):修改源文件格式
打开JSON编辑器,检查文件尾部是否多出}前的逗号(如"city": "New York",})。删除末尾非法分隔符后重新保存,常规读取即可恢复正常。

解决方法B:调整解析参数
对于多行JSON(每行独立对象)或难以手动修正的大文件,可启用逐行解析模式。将lines=True传入,强制pandas按记录流读取:

df_fixed = pd.read_json('malformed.json', lines=True)

此方式会逐行构建DataFrame,有效规避格式截断问题。若需更精细控制,可迭代文件行并单独调用解析器:

with open('file.json') as f:
    for line in f:
        temp_df = pd.read_json(line.strip())

通过以上步骤,可稳定覆盖从网页抓取到本地文件解析的全流程。以上就是pandas读取HTML与JSON数据实战指南的详细内容,更多关于Python数据处理与自动化清洗的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。