Выполните итерацию фрагмента кода, подключающегося к API, используя две переменные, извлеченные из двух списков - PullRequest
1 голос
/ 26 мая 2019

Я пытаюсь запустить скрипт (API для поисковой консоли Google) над таблицей ключевых слов и дат, чтобы проверить, было ли улучшение эффективности ключевых слов (SEO) после даты.

Так как я действительно невежествен, я угадываю и пытаюсь, но ноутбук Юпитера не отвечает, поэтому я даже не могу сказать, ошибаюсь ли я ...

Этот мерзавец сделал Джош Карти мерзавец, из которого я взял этот код: https://github.com/joshcarty/google-searchconsole

Уже pd.read_csv входная таблица (состоит из двух столбцов «ключевое слово» и «дата»), разделил столбцы на два отдельных списка (или, может быть, лучше использовать словарь / другое?):

KW_list и Date_list

Я пытался: для меня в KW_list и J в Date_list:

for i in KW_list and j in Date_list:

 account = searchconsole.authenticate(client_config='client_secrets.json',
                                      credentials='credentials.json')
 webproperty = account['https://www.example.com/']
 report = webproperty.query.range(j, days=-30).filter('query', i, 'contains').get()
 report2 = webproperty.query.range(j, days=30).filter('query', i, 'contains').get()
 df = pd.DataFrame(report)
 df2 = pd.DataFrame(report2)
df

Ожидайте увидеть фрейм данных всех различных ключевых слов (keyowrd1-stat1, keyword2 - stats2 ниже и т. Д. [Без перезаписи]) в даты за 30 дней до даты в соседней ячейке (во входном файле) или, по крайней мере, какой-то ответ от J.notebook, чтобы я знал, что происходит.

1 Ответ

0 голосов
/ 26 мая 2019

Попробуйте использовать функцию zip, чтобы объединить списки в список кортежей.Таким образом, дата и соответствующее ключевое слово объединяются.

account = searchconsole.authenticate(client_config='client_secrets.json', credentials='credentials.json')
webproperty = account['https://www.example.com/']
df1 = None
df2 = None
first = True

for (keyword, date) in zip(KW_list, Date_list):
   report = webproperty.query.range(date, days=-30).filter('query', keyword, 'contains').get()
   report2 = webproperty.query.range(date, days=30).filter('query', keyword, 'contains').get()

    if first:
        df1 = pd.DataFrame(report)
        df2 = pd.DataFrame(report2)
        first = False
    else:
        df1 = df1.append(pd.DataFrame(report))
        df2 = df2.append(pd.DataFrame(report2))
...