相关疑难解决方法(0)

TypeError:'bytes'类型的对象不是JSON可序列化的

我刚开始编程Python.我想使用scrapy来创建一个bot,它显示了TypeError:当我运行项目时,'bytes'类型的对象不是JSON可序列化的.

import json
import codecs

class W3SchoolPipeline(object):

  def __init__(self):
      self.file = codecs.open('w3school_data_utf8.json', 'wb', encoding='utf-8')

  def process_item(self, item, spider):
      line = json.dumps(dict(item)) + '\n'
      # print line

      self.file.write(line.decode("unicode_escape"))
      return item
Run Code Online (Sandbox Code Playgroud)
from scrapy.spiders import Spider
from scrapy.selector import Selector
from w3school.items import W3schoolItem

class W3schoolSpider(Spider):

    name = "w3school"
    allowed_domains = ["w3school.com.cn"]

    start_urls = [
        "http://www.w3school.com.cn/xml/xml_syntax.asp"
    ]

    def parse(self, response):
        sel = Selector(response)
        sites = sel.xpath('//div[@id="navsecond"]/div[@id="course"]/ul[1]/li')

    items = []
    for site in sites:
        item = W3schoolItem()
        title = site.xpath('a/text()').extract()
        link = site.xpath('a/@href').extract()
        desc …
Run Code Online (Sandbox Code Playgroud)

python serialization json scrapy

15
推荐指数
3
解决办法
7万
查看次数

标签 统计

json ×1

python ×1

scrapy ×1

serialization ×1