報錯:TypeError: 'set' object is not subscriptable
class?Htmloutputer(object): ????def?__init__(self): ????????self.datas=[] ????def?collect_data(self,data):#收集數(shù)據(jù) ????????if?data?is?None:#如果數(shù)據(jù)是空的就返回 ????????????return ????????self.datas.append(data)#否則就往列表中添加data ????def?output_json(self):#寫出文件 ????????fout=open('9udata.json','w') ????????fout.write('{')#0-- ????????fout.write('"code":200,') ????????fout.write('"author":"wenruding",') ????????fout.write('"list":[')#1-- ????????fout.write('{')#2-- ????????for?data?in?self.datas: ????????????fout.write('"url":"%s",'%?data['url']) ????????????fout.write('"title":"%s",'?%?data['title'].encode('utf8')) ????????????fout.write('"summary":"%s",'?%?data['summary'].encode('utf8')) ????????fout.write('}')#--2 ????????fout.write(']')#--1 ????????fout.write('}')#--0 ????????fout.close()
輸出結果:
"C:\Program Files (x86)\Python38-32\python.exe" D:/file/python/get9u/spider_main.py
craw 1:https://a.9game.cn/lolsy/4489275.html
craw 2:https://a.9game.cn/lolsy/4490449.html
craw 3:https://a.9game.cn/lolsy/4489389.html
craw 4:https://a.9game.cn/lolsy/3740915.html
craw 5:https://a.9game.cn/lolsy/4492319.html
Traceback (most recent call last):
? File "D:/file/python/get9u/spider_main.py", line 34, in <module>
? ? obj_spider.craw(root_url)
? File "D:/file/python/get9u/spider_main.py", line 29, in craw
? ? self.outputer.output_json()#調用output_json進行輸出
? File "D:\file\python\get9u\html_outputer.py", line 22, in output_json
? ? fout.write('"url":"%s",'% data['url'])
TypeError: 'set' object is not subscriptable
進程已結束,退出代碼 1
然后輸出文件內容是:
{"code":200,"author":"wenruding","list":[{