我正在使用Python从一个网站上爬取大量评论,对于每个评论,我调用“review”函数,然后打开文件并将其附加到文件中。它可以工作一段时间,但是随后每次出现以下错误,而且不是相同的评论。
OSError: [Errno 22] 无效参数
我尝试了json.dumps:
scraped_data = reviews(line)
with open('reviews','a' ) as f:
f.write(json.dumps(scraped_data,f,indent = 4))
但是同样的错误一直出现。我还尝试了json.dump:
scraped_data = reviews(line)
with open('reviews','a' ) as f:
json.dump(scraped_data,f,indent = 4))
出于某种原因,我尝试了不缩进的方式。
编辑:json.dumps的完整回溯:
Traceback (most recent call last):
File "s.py", line 202, in <module>
with open('reviews','a' ) as f:
OSError: [Errno 22] Invalid argument: 'reviews'
json.dump的完整回溯:
Traceback (most recent call last):
File "s.py", line 203, in <module>
json.dump(scraped_data,f,indent = 4)
OSError: [Errno 22] Invalid argument: 'reviews'
man 2 open
命令,查看EINVAL
错误信息的描述。我想到的最好的解释是在你的系统上,O_APPEND
('a'
) 支持不够好。尝试使用 ('w'
) 选项,这会覆盖文件,但如果这样可以正常工作,就说明问题出在'a'
上。 - Andrew Morozkoscraped_data
硬编码为一个固定字符串,是否会得到相同的结果? - Wodin