Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python OSError:[Errno 22]无效参数:_Python_Json - Fatal编程技术网

Python OSError:[Errno 22]无效参数:

Python OSError:[Errno 22]无效参数:,python,json,Python,Json,我用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)) Tracebac

我用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))
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:

scraped_data = reviews(line)
with open('reviews','a' ) as f:
    json.dump(scraped_data,f,indent = 4))
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'
而且,出于某种原因,我也试着不缩进

编辑:json.dumps的完整回溯:

scraped_data = reviews(line)
with open('reviews','a' ) as f:
    f.write(json.dumps(scraped_data,f,indent = 4))
Traceback (most recent call last):
File "s.py", line 202, in <module>
with open('reviews','a' ) as f:
OSError: [Errno 22] Invalid argument: 'reviews' 
回溯(最近一次呼叫最后一次):
文件“s.py”,第202行,在
以open('reviews','a')作为f:
OSError:[Errno 22]无效参数:“审阅”
json.dump的完整回溯:

scraped_data = reviews(line)
with open('reviews','a' ) as f:
    json.dump(scraped_data,f,indent = 4))
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'
回溯(最近一次呼叫最后一次):
文件“s.py”,第203行,在
dump(刮取的_数据,f,缩进=4)
OSError:[Errno 22]无效参数:“审阅”

尝试为其提供文件的完整路径

确保您有在该目录中写入的权限(无论应用程序在哪个用户下运行)

此外,如果文件不存在,则无法附加到该文件。。。尝试
a+


加号表示如果不存在,则创建它

尝试为其提供文件的完整路径

确保您有在该目录中写入的权限(无论应用程序在哪个用户下运行)

此外,如果文件不存在,则无法附加到该文件。。。尝试
a+


加号意味着如果它不存在,那么创建它

为什么不将文件作为变量打开

f = open("reviews", "a")
f.write(json.dumps(scraped_data,f,indent = 4))
f.close()

为什么不将文件作为变量打开

f = open("reviews", "a")
f.write(json.dumps(scraped_data,f,indent = 4))
f.close()

在Windows 10上

我注意到我的代码中有同样的行为,我发现我使用的是导致相同错误的Microsoft OneDrive。我试图打开的文件的文件指针在Windows资源管理器中可见,但内容不可见。您是否正在使用云文件共享服务


(我用鼠标右键单击该文件,选择“始终保持在此设备上”,再次运行相同的代码,代码正常工作)。

在Windows 10上

我注意到我的代码中有同样的行为,我发现我使用的是导致相同错误的Microsoft OneDrive。我试图打开的文件的文件指针在Windows资源管理器中可见,但内容不可见。您是否正在使用云文件共享服务



(我右键单击了文件,选择了“始终保持在此设备上”,再次运行了相同的代码,并且运行正常)。

您介意分享完整的回溯吗?是的,我编辑了问题我相信这需要进一步调试,因为看起来问题不在于将转储写入文件,而在于首先转储刮取的数据,请尝试打印刮取的数据以找出问题的原因。您正在运行的确切Linux是什么?Errno 22可能具有平台相关的含义。我建议运行
man2open
,并阅读
EINVAL
消息的说明。我提出的最好的理论是
O_APPEND
'a'
)在您的系统上不知何故受到了严重的支持。尝试使用(
'w'
),这将覆盖文件,但如果这样做有效,那么我们知道问题出在
'a'
。我突然想到另一个想法:您是使用多线程还是多处理,还是从其他程序查看此文件?所有模糊bug的根源都是并发;)你介意分享完整的回溯吗?是的,我编辑了这个问题我相信这需要进一步的调试,因为看起来,问题不在于将转储写入文件,而是要首先转储刮取的数据,请尝试打印刮取的数据以找出问题的原因。你正在运行的确切Linux是什么?Errno 22可能具有平台相关的含义。我建议运行
man2open
,并阅读
EINVAL
消息的说明。我提出的最好的理论是
O_APPEND
'a'
)在您的系统上不知何故受到了严重的支持。尝试使用(
'w'
),这将覆盖文件,但如果这样做有效,那么我们知道问题出在
'a'
。我突然想到另一个想法:您是使用多线程还是多处理,还是从其他程序查看此文件?所有模糊bug的根源都是并发;)我试过了,至少在macOS和Debian上,“a”可以很好地创建新文件…:耸耸肩:说“+”是用来读写的,但不管怎样…你是对的@AndrewMorozko如果不是其中之一,那么他们就有一个与路径或权限相关的错误。是的,没有权限的问题,尽管这方面有很多问题。我们不能都同意errno机制是一个很好的解决方案吗?它从来没有发生过令人困惑的事情!我尝试了完整路径和“a+”,但没有成功:(我会尝试上面的方法,我尝试过,至少在macOS和Debian上,“+”可以很好地创建新文件…:耸耸肩:说“+”用于读写,但不管怎样……你是对的@AndrewMorozko如果不是其中之一,那么他们就有一个与路径或权限相关的错误。是的,权限不是一回事,尽管不是下面是关于这一点的
EACCES
。我们难道不能都同意errno机制是一个很好的解决方案吗?它从来没有发生过任何混乱!我尝试了完整路径和“a+”但它不起作用:(我将尝试上述方法您能解释一下这将如何解决OPs问题吗?使用上下文管理器来处理打开和关闭文件是普遍存在的。这不会改变对
open
的调用,从而产生错误,但如果出现问题,将无法关闭文件描述符。您能解释一下这将如何解决OPs问题吗lem?使用上下文管理器处理打开和关闭文件是普遍存在的。这不会改变对
open
的调用,从而产生错误,但如果出现错误,将无法关闭文件描述符。