将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
        # 将光标移动到文件末尾字符的前面,逗号之前
        self.file.seek(-1, os.SEEK_END)
        # 将光标之后的字符切除掉
        self.file.truncate()
        # 写入]
        self.file.write(']')
        # 关闭文件
        self.file.close()

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值