Получение данных Youtube с использованием Python

Я пытаюсь научиться анализировать данные социальных сетей, доступные в Интернете, и начинаю с 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

И я получаю эту ошибку.

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

Я использую учебник для этого, но я получаю ошибку.

1 ответ

Похоже, парсер, который вы импортируете

from outh2client.tools import argparser

уже определил -q аргумент. Вы можете проверить это, посмотрев на его код или выполнив argparser.print_help() (прежде чем добавлять что-либо самостоятельно).

Поэтому самое простое решение - выбрать другое имя для вашего аргумента.

Соответствующие документы

https://docs.python.org/3.4/library/argparse.html

найти, посмотрев "конфликт" на этой странице.

Парсер, определенный на https://github.com/google/oauth2client/blob/master/oauth2client/tools.py, не имеет -q аргумент. Это твой источник? Я предполагаю, что пропавший a орфографическая ошибка

Другие вопросы по тегам