I'm trying to learn how to analyze social media data available on the web and I'm starting with Youtube.
from apiclient.errors import HttpError
from outh2client.tools import argparser
from apiclient.discovery import build
import pandas as pd
DEVELOPER_KEY = "AIzaSyB_F1mCrDydEbGUosnZES-NW-mg1CaOyjI"
YOUTUBE_API_SERVICE_NAME = "youtube"
YOUTUBE_API_VERSION = "v3"
argparser.add_argument("--q", help="Search term", default="apple product")
argparser.add_argument("--max-results", help="Max results", default=50)
args = argparser.parse_args()
options = args
And I get this error.
ArgumentError Traceback (most recent call last)
<ipython-input-37-ebbf58549b73> in <module>()
----> 1 argparser.add_argument("--q", help="Search term", default="apple product")
2 argparser.add_argument("--max-results", help="Max results", default=50)
3 args = argparser.parse_args()
4 options = args
/usr/lib/python2.7/argparse.py in add_argument(self, *args, **kwargs)
1306 raise ValueError("length of metavar tuple does not match nargs")
1307
-> 1308 return self._add_action(action)
1309
1310 def add_argument_group(self, *args, **kwargs):
/usr/lib/python2.7/argparse.py in _add_action(self, action)
1680 def _add_action(self, action):
1681 if action.option_strings:
-> 1682 self._optionals._add_action(action)
1683 else:
1684 self._positionals._add_action(action)
/usr/lib/python2.7/argparse.py in _add_action(self, action)
1507
1508 def _add_action(self, action):
-> 1509 action = super(_ArgumentGroup, self)._add_action(action)
1510 self._group_actions.append(action)
1511 return action
/usr/lib/python2.7/argparse.py in _add_action(self, action)
1320 def _add_action(self, action):
1321 # resolve any conflicts
-> 1322 self._check_conflict(action)
1323
1324 # add to actions list
/usr/lib/python2.7/argparse.py in _check_conflict(self, action)
1458 if confl_optionals:
1459 conflict_handler = self._get_handler()
-> 1460 conflict_handler(action, confl_optionals)
1461
1462 def _handle_conflict_error(self, action, conflicting_actions):
/usr/lib/python2.7/argparse.py in _handle_conflict_error(self, action, conflicting_actions)
1465 for option_string, action
1466 in conflicting_actions])
-> 1467 raise ArgumentError(action, message % conflict_string)
1468
1469 def _handle_conflict_resolve(self, action, conflicting_actions):
ArgumentError: argument --q: conflicting option string(s): --q
I'm using a tutorial for this but I get an error.
It looks like the parser that you import
already has defined a
-q
argument. You can check that by looking at its code, or by doing aargparser.print_help()
(before adding anything yourself).So the simplest solution is to choose another name for your argument.
The relevant docs are
https://docs.python.org/3.4/library/argparse.html#conflict-handler
found by looking up 'conflict' on that page.
The parser defined on https://github.com/google/oauth2client/blob/master/oauth2client/tools.py does not have a
-q
argument. Is this your source? I assume the missinga
is a spelling error.