Я пытаюсь использовать Google Drive и API Google Sheets с Python для доступа к настроенному мной тестовому Google Sheet. Просто следуя учебному пособию онлайн, когда я запускаю код, я получаю следующую ошибку:
File "C:\...\Roaming\Python\Python37\site-packages\cryptography\x509\extensions.py", line 131, in get_extension_for_class
"No {} extension was found".format(extclass), extclass.oid
ExtensionNotFound: No <class 'cryptography.x509.extensions.SubjectAlternativeName'> extension was found
Достаточно сказать, что я довольно запутался.
Код проекта:
#import library
import gspread
#Service client credential from oauth2client
from oauth2client.service_account import ServiceAccountCredentials
#Create scope
scope = ['https://spreadsheets.google.com/feeds', 'https://www.googleapis.com/auth/drive']
#create some credential using that scope and content of startup_funding.json
creds = ServiceAccountCredentials.from_json_keyfile_name('client_secret.json',scope)
#create gspread authorize using that credential
client = gspread.authorize(creds)
wks = client.open('api_tester').sheet1
Что я пробовал до сих пор:
- Использование pip для установки пакета криптографии, но он говорит, что все есть
- Удаление
.sheet1
, которое избавляет от ошибки, но, очевидно, не помогает мне достичь моей цели
Есть ли что-то в этом .sheet1
методе, который может вызвать это, возможно?
Я использую Python 3.7, у меня правильный заголовок листа и, насколько я могу судить, все необходимые разрешения для моих учетных данных API (я также предоставил доступ к редактированию листа для client_email в файле JSON).
Я никогда не сталкивался с подобной ошибкой раньше и был бы очень признателен за любую помощь, которую вы можете оказать!
Редактировать: Вот полный ответ:
Traceback (most recent call last):
File "<ipython-input-48-6114487ac5ae>", line 1, in <module>
runfile('C:/Users/parke/OneDrive/Documents/Random Projects/API injector.py', wdir='C:/Users/parke/OneDrive/Documents/Random Projects')
File "C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 786, in runfile
execfile(filename, namespace)
File "C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Users/parke/OneDrive/Documents/Random Projects/API injector.py", line 13, in <module>
wks = client.open('api_tester').sheet1
File "C:\ProgramData\Anaconda3\lib\site-packages\gspread\client.py", line 123, in open
self.list_spreadsheet_files()
File "C:\ProgramData\Anaconda3\lib\site-packages\gspread\client.py", line 96, in list_spreadsheet_files
res = self.request('get', url, params=params).json()
File "C:\ProgramData\Anaconda3\lib\site-packages\gspread\client.py", line 73, in request
headers=headers
File "C:\ProgramData\Anaconda3\lib\site-packages\requests\sessions.py", line 546, in get
return self.request('GET', url, **kwargs)
File "C:\ProgramData\Anaconda3\lib\site-packages\requests\sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "C:\ProgramData\Anaconda3\lib\site-packages\requests\sessions.py", line 646, in send
r = adapter.send(request, **kwargs)
File "C:\ProgramData\Anaconda3\lib\site-packages\requests\adapters.py", line 449, in send
timeout=timeout
File "C:\ProgramData\Anaconda3\lib\site-packages\urllib3\connectionpool.py", line 600, in urlopen
chunked=chunked)
File "C:\ProgramData\Anaconda3\lib\site-packages\urllib3\connectionpool.py", line 343, in _make_request
self._validate_conn(conn)
File "C:\ProgramData\Anaconda3\lib\site-packages\urllib3\connectionpool.py", line 839, in _validate_conn
conn.connect()
File "C:\ProgramData\Anaconda3\lib\site-packages\urllib3\connection.py", line 355, in connect
cert = self.sock.getpeercert()
File "C:\ProgramData\Anaconda3\lib\site-packages\urllib3\contrib\pyopenssl.py", line 360, in getpeercert
'subjectAltName': get_subj_alt_name(x509)
File "C:\ProgramData\Anaconda3\lib\site-packages\urllib3\contrib\pyopenssl.py", line 211, in get_subj_alt_name
x509.SubjectAlternativeName
File "C:\Users\parke\AppData\Roaming\Python\Python37\site-packages\cryptography\x509\extensions.py", line 131, in get_extension_for_class
"No {} extension was found".format(extclass), extclass.oid
ExtensionNotFound: No <class 'cryptography.x509.extensions.SubjectAlternativeName'> extension was found