前提・実現したいこと
ここに質問の内容を詳しく書いてください。
エクセルに入っているデータ(コンビニ商品の情報)の中からsizzle.txtの中にあるワードが商品名に使われていたら別のエクセルファイルに保存するプログラムを作成しています。
発生している問題・エラーメッセージ
エラーメッセージ
Traceback (most recent call last):
File "/Users/mk/卒研関係/sizzleitem_scraping.py", line 51, in <module>
if i[0].find(sizzle)>=0:
AttributeError: 'NoneType' object has no attribute 'find'
該当のソースコード
ソースコード
import openpyxl as px
import re
import datetime
fp=open('sizzle.txt','r',encoding='utf-8')
list=[s.strip() for s in fp.readlines()]
fp.close()
id_list = []
itemname=[]
itemsizzle=[]
itemstar=[]
itemvotes=[]
itemrating=[]
itemdate=[]
itemcategory=[]
itemurl=[]
wb = px.load_workbook("コンビニ新商品.xlsx")
num=1
ws = wb["Sheet"+str(num)]
for row in ws.iter_rows(min_row=2):
item_name=row[0].value
item_star=row[1].value
item_votes=row[2].value
item_rating=row[3].value
item_date=row[4].value
item_category=row[5].value
item_url=row[6].value
id_list.append([item_name,item_star,item_votes,item_rating,item_date,item_category,item_url])
for sizzle in list:
for i in id_list:
if i[0].find(sizzle)>=0:
itemname.append(i[0])
itemsizzle.append(sizzle)
itemstar.append(i[1])
itemvotes.append(i[2])
itemrating.append(i[3])
itemdate.append(i[4])
itemcategory.append(i[5])
itemurl.append(i[6])
from collections import Counter
c=Counter(itemsizzle)
for k,v in c.most_common():
print(str(k)+":"+str(v))
wb = px.load_workbook("コンビニ商品あり.xlsx")
ws = wb.active
ws=wb["Sheet"+str(num)]
for r2 in range(1000000):
if ws.cell(row=r2+2,column=1).value==None:
maxRow=r2+1
break
for r3 in range(len(itemname)):
ws.cell(row=maxRow+1+r3,column=1).value=itemname[r3]
ws.cell(row=maxRow+1+r3,column=2).value=itemsizzle[r3]
ws.cell(row=maxRow+1+r3,column=3).value=itemstar[r3]
ws.cell(row=maxRow+1+r3,column=4).value=itemvotes[r3]
ws.cell(row=maxRow+1+r3,column=5).value=itemrating[r3]
ws.cell(row=maxRow+1+r3,column=6).value=itemdate[r3]
ws.cell(row=maxRow+1+r3,column=7).value=itemcategory[r3]
ws.cell(row=maxRow+1+r3,column=8).value=itemurl[r3]
wb.save('コンビニ商品あり.xlsx')
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/21 12:46
2020/04/21 23:15