diff --git a/scrapy/cmdline.py b/scrapy/cmdline.py index 3d448532b..2b0204071 100644 --- a/scrapy/cmdline.py +++ b/scrapy/cmdline.py @@ -32,8 +32,9 @@ class ScrapyArgumentParser(argparse.ArgumentParser): def _parse_optional( self, arg_string: str ) -> tuple[argparse.Action | None, str, str | None] | None: - # if starts with -: it means that is a parameter not a argument - if arg_string[:2] == "-:": + # Support something like ‘-o -:json’, where ‘-:json’ is a value for + # ‘-o’, not another parameter. + if arg_string.startswith("-:"): return None return super()._parse_optional(arg_string)