網站首頁 編程語言 正文
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
讀取問題解決。
pd.read_html讀取數據不完整問題
問題:有一個較大的表格數據存在了html中,打算用read_html直接取出來這部分數據,但后來發現read_html讀取的數據不完整,后來檢查html的table都沒有任何問題
解決辦法
pd.read_html的默認解析器為 'lxml' ,添加參數flavor='bs4'便可解決
原文鏈接:https://blog.csdn.net/caroline_wendy/article/details/117256179
相關推薦
- 2022-06-18 C語言圖文并茂詳解鏈接過程_C 語言
- 2022-07-03 golang defer,func()閉包,panic ,recover,contex
- 2023-01-09 Redis排序命令Sort深入解析_Redis
- 2022-07-22 springboot項目整合配置knife4j
- 2022-11-22 Android?10?啟動分析之init語法詳解_Android
- 2023-04-01 Python關于維卷積的理解_python
- 2022-05-25 Shell腳本獲取jar包pid進行重啟、停止、啟動
- 2022-12-22 C/C++?活動預處理器詳解_C 語言
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支