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

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

在使用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 相关产品和应用

全部下载

专题列表