gpt4 book ai didi

python - 如何在python中使用scrapy向json文件添加自定义信息

转载 作者:行者123 更新时间:2023-12-01 08:38:01 25 4
gpt4 key购买 nike

我正在使用 srapy 的 jsonitemexporter 将数据从项目导出到 json 文件。现在我想向文件添加一些有关数据的基本信息,例如合作伙伴名称或页面名称。

将此代码放入

class BidPipeline(object):

file = None

def open_spider(self, spider):
self.file = open('data/'+ datetime.datetime.now().strftime ("%Y%m%d") + '_' + spider.name + '.json', 'wb')
self.exporter = JsonItemExporter(self.file)

# trying to add partner info
a = {'partner': 3}
line = json.dumps(a) + "\n"
self.file.write(line)

self.exporter.start_exporting()

回溯结果:

yield self.engine.open_spider(self.spider, start_requests)
builtins.TypeError: a bytes-like object is required, not 'str'

我的目标是在开始导出项目之前向 json 文件添加一些信息,以便稍后在处理数据时可以确定例如来源。

实现这一目标的最佳方法是什么?

最佳答案

这里的错误是非常不言自明的:

a bytes-like object is required, not 'str'

您打开文件写入字节(wb)并尝试写入字符串:

def open_spider(self, spider):
self.file = open(..., 'wb')
^^^^^
...
a = {'partner': 3}
line = json.dumps(a) + "\n"
^^^^
self.file.write(line)

要解决此问题,可以将文件作为字符串文件打开(只需 w 而不是 wb),或者在将其写入文件之前对其进行编码:

    self.file.write(line.encode())

最好在写入文本时使用 w ,在写入字节(例如图像数据)时使用 wb

关于python - 如何在python中使用scrapy向json文件添加自定义信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53635013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com