用pdfplumber爬取pdf里面的表格,结果没报错,但是出现了很多的none,用replace替换‘\n’的时候,还会报出'NoneType' object has no attribute 'replace',该用什么方法可以看不到那些None,然后replace那些换行符
import pdfplumber
import pandas as pd
import re
pdf = pdfplumber.open(r"C:\Users\第二帅\Desktop\丁文景\学习\数据挖掘\PDF\天润工业:关于使用闲置自有资金购买银行理财产品的进展公告.PDF")
pages = pdf.pages
text_all = []
for page in pages:
text = page.extract_text()
text_all.append(text)
text_all = ''.join(text_all)
print(text_all)
pdf.close()
page = pages[2]
tables = page.extract_tables()
table = tables[0]
for i in range(len(table)):
for j in range(len(table[i])):
table[i][j] = table[i][j].replace('\n', '')
df = pd.DataFrame(table[1:],columns=table[0])
pd.set_option('display.max_columns',None)
print(df)
你加个判断,如
if table[i][j] != None:
pass
题主的问题可以通过条件判断筛选去除报错,第20行写成:
table[i][j] = table[i][j].replace('\n', '') if table[i][j] is not None else ''
NoneType 对象无replace属性,None是Python中的对象,也是关键词,表示空,缺失值。
参考这里解释:
https://cloud.tencent.com/developer/article/1649788