Получение данных 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
орфографическая ошибка