将scrapy中的item对象转换成json数据
# 在项⽬下的pipeline创建⼀个类:
class JsonWritePipeline(object):
def __init__(self):
# 做写⼊数据的准备
self.file = codecs.open('article.json', 'w+', encoding='utf-8')
# 先写⼊⼀个[
self.file.write('[')
# [{},{},{},{}]
def process_item(self, item, spider):
# 把item转换为json字符串
if isinstance(item, ArticleItem):
# 将item转换字典
item_dict = dict(item)
# 转换为json字符串并追加,逗号
json_str = json.dumps(item_dict)+','
# 写⼊
self.file.write(json_str)
return item
def close_spider(self, spider):
# seek() 移动⽂件光标位置
# seek(offset, start)
# os.SEEK_CUR  os.SEEK_END  os.SEEK_SET
json转换对象
# 将光标移动到⽂件末尾字符的前⾯,逗号之前
self.file.seek(-1, os.SEEK_END)
# 将光标之后的字符切除掉
uncate()
# 写⼊]
self.file.write(']')
# 关闭⽂件
self.file.close()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。