Python如何读取HTML表格,具体怎样做
Admin 2022-07-26 群英技术资讯 1088 次浏览
这篇文章给大家分享的是Python如何读取HTML表格,具体怎样做。小编觉得挺实用的,因此分享给大家做个参考,文中的介绍得很详细,而要易于理解和学习,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。数据部门提供的数据是xls格式的文件,但是执行读取xls文件的脚本报错。
xlrd报错:
xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b'<html xm'
读取xlrd的脚本
data_lines = read_excel_file(self.file_path)
def read_excel_file(file_path):
"""
读取excel文件
"""
import xlrd
print('[Info] excel file: {}'.format(file_path))
book = xlrd.open_workbook(file_path)
sheet = book.sheet_by_index(0)
data_lines = []
for row in range(0, sheet.nrows):
line_data = []
for column in range(0, sheet.ncols):
val = sheet.cell(row, column).value
line_data.append(val)
data_lines.append(line_data)
return data_lines # 二维数组
原因是文件格式是HTML表格,参考python xlrd unsupported format, or corrupt file.
使用pandas的read_html读取文件,同时替换nan为空字符,数据格式保持一致。
def read_html_table(file_path): """ 读取html表格 """ import pandas as pd pd_table = pd.read_html(file_path) df = pd_table[0] # num_col = df.shape[1] # num_row = df.shape[0] df_data = df.values.tolist() df_data = df_data[1:] for r_idx, row in enumerate(df_data): for c_idx, value in enumerate(row): # 判断nan,参考https://stackoverflow.com/questions/944700/how-can-i-check-for-nan-values if value != value: df_data[r_idx][c_idx] = "" return df_data
读取问题解决。
问题:有一个较大的表格数据存在了html中,打算用read_html直接取出来这部分数据,但后来发现read_html读取的数据不完整,后来检查html的table都没有任何问题
pd.read_html的默认解析器为 'lxml' ,添加参数flavor='bs4'便可解决
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
本篇文章给大家带来了关于Python的相关知识,其中主要整理了编码规范的相关问题,想要写好python代码,必须了解python相关编码规范,有了这个的加持,编写的代码不仅可以实现相应的
这篇文章主要介绍了python中Flask Web 表单的使用方法介绍,表单的操作是Web程序开发中最核心的模块之一,绝大多数的动态交互功能都是通过表单的形式实现的。更多介绍需要的小伙伴可以参考下面文章内容
这篇文章主要介绍了Python dataframe如何设置index,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
python怎么解决死锁的问题?一些朋友遇到死锁的问题不知道要怎样处理,其实解决方法并不困难,下文小编就给大家分享一下python解决死锁的方法,另外一些新手对于死锁可能不是很来接,因此下文还介绍了死锁、递归锁等基础的python知识,需要的朋友可以了解看看。
这篇文章主要为大家介绍了Python提升运行速度的几个小技巧,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008