Я установил Anaconda, и у меня возникли проблемы с SSL при попытке выполнить вызовы API через Блокноты Jupyter:
import requests
import certifi
r = requests.get('https://github.com/')
print(r)
Сначала возникла ошибка соединения SSL.Что я смог решить после тщательного поиска и помощи нашего ИТ-отдела.Решением здесь было добавление корневого сертификата компании в хранилище сертификатов.
Теперь, к сожалению, для других запросов у меня остались те же проблемы.Пример кода вызова Google Analytics API с пакетом google2pandas:
from google2pandas import *
query = {
'reportRequests': [{
'viewId' : 37616054,
'dateRanges': [{
'startDate' : '8daysAgo',
'endDate' : 'today'}],
'dimensions' : [
{'name' : 'ga:date'},
{'name' : 'ga:pagePath'},
{'name' : 'ga:browser'}],
'metrics' : [
{'expression' : 'ga:pageviews'}],
'dimensionFilterClauses' : [{
'operator' : 'AND',
'filters' : [
{'dimensionName' : 'ga:browser',
'operator' : 'REGEXP',
'expressions' : ['Firefox']},
{'dimensionName' : 'ga:pagePath',
'operator' : 'REGEXP',
'expressions' : ['iPhone']}]
}]
}]
}
# Assume we have placed our client_secrets_v4.json file in the current
# working directory.
conn = GoogleAnalyticsQueryV4(secrets='Analytics.json')
df = conn.execute_query(query)
Здесь я все еще получаю ошибку SSL, которую я имел при простом вызове, также:
C: \ ProgramData\ Anaconda3 \ lib \ ssl.py в _create (cls, sock, server_side, do_handshake_on_connect, suppress_ragged_eofs, server_hostname, context, session) 848 # неблокируемый 849 поднять ValueError ("do_handshake_on_connect" не следует указывать для неблокирования),-> 850 self.do_handshake () 851 кроме (OSError, ValueError): 852 self.close ()
C: \ ProgramData \ Anaconda3 \ lib \ ssl.py в do_handshake (self, block)
1106 если тайм-аут == 0.0 и блок: 1107
self.settimeout (нет) -> 1108 self._sslobj.do_handshake () 1109 наконец: 1110 self.settimeout (тайм-аут)
SSLCertVerificationError: [SSL:CERTIFICATE_VERIFY_FAILED] проверка сертификата не удалась: невозможно получить сертификат локального эмитента (_ssl.c: 1045)
Я считаю, что используется другая библиотека, которая не зависит от сертификатаЕсли я?Но я понятия не имею, где и как добавить свой корневой сертификат, поэтому все запросы iPython будут работать.
Любые идеи приветствуются.