import pandas as pd
import requests# 读取 Excel 表格
df = pd.read_csv(r'C:\Users\win10\Documents\WXWork\1688855780474743\Cache\File\2023-03\us_thinktank_art.csv')# 根据 pdf_url 列下载 PDF 文件,并将文件名保存在另一列中
df['pdf_filename'] = ''
for i, row in df.iterrows():url = row['pdf_url']if isinstance(url, str) and url.endswith('.pdf'):try:response = requests.get(url)filename = f'file_{i}.pdf'with open(filename, 'wb') as f:f.write(response.content)df.at[i, 'pdf_filename'] = filenameexcept Exception as e:continue
bug
AttributeError: 'float' object has no attribute 'endswith'
原因:
这个错误提示说明你尝试在一个 float
类型的变量上调用了 endswith()
方法,而 float
类型并没有这个方法。通常情况下,这是因为你的 Excel 表格中含有空值或者其它非字符串类型的数据。为了避免出现这个错误,你可以先对每一个单元格进行类型判断,然后再针对字符串类型的单元格进行相应的处理。
解决办法:
if isinstance(url, str) and url.endswith('.pdf'):