Python 및 gspread를 사용하여 Google 워크시트에 액세스하는 방법

안녕하세요. 이 글은 파이썬과 훌륭한 라이브러리 gspread를 사용하여 Google 스프레드시트에 접근하고 업데이트하는 방법을 보여 드리겠습니다.몇 줄의 코드만 있으면 우리는 새로운 작업표를 만들거나 기존의 작업표를 사용하고 추가,
업데이트 또는 삭제또 다른 멋진 일은 한 줄로 이 전자 표를 판다 데이터 상자로 바꿀 수 있다는 것이다.우리 시작합시다.

선결 조건

  • api증빙서류를 만드는 데 사용되는 구글 개발자 계정
  • 프로그래밍 방식으로 전자 표에 접근하는 구글 서비스 계정
  • gspread-Python 라이브러리
  • oauth2client-Python 라이브러리
  • 구글 서비스 계정 만들기


    **첫걸음:*우선 구글 개발자 계정을 등록해야 합니다. 아직 등록하지 않았다면.구글 개발자 등록 페이지https://console.developers.google.com/를 방문하여 계정을 만드세요.
    2단계: 서비스 계정 만들기
    프로그램을 사용하여 스프레드시트에 액세스하기 때문에 서비스 계정과 자격 증명을 만들어야 합니다.따라서 개발자 계정에 로그인하고 왼쪽 상단에 있는 '새 프로젝트' 아이콘을 누르면 새 프로젝트를 만듭니다.
    다음 그림과 같이 새 창이 나타납니다.항목 이름을 입력하고 "만들기"단추를 누르십시오

    이제 프로젝트를 만들면 프로젝트 페이지로 안내됩니다(없으면 오른쪽 상단에 있는 작은 방울 아이콘을 누르고 프로젝트 페이지로 들어가십시오).얘는 밑에 실크스크린 인쇄처럼 보일 거예요.

    이제 사용하려는 API를 활성화해야 합니다.이 자습서에서는 Google drive 및 Google sheet에 대한 api를 활성화해야 합니다.Google drive api가 필요합니다. 전자 표가 Google drive에 저장되기 때문입니다.
    따라서 왼쪽 상단에 있는 메뉴 아이콘을 클릭하고 'API 및 서비스' 로 들어가고 라이브러리를 클릭하면 API 라이브러리 페이지로 안내합니다. 아래 그림과 같습니다.

    Google Drive api를 검색하고 활성화 를 클릭합니다.

    사용하면 구글 드라이브api 페이지로 안내해 줍니다.자격 증명 생성 을 클릭합니다.

    자격 증명을 만들려면 아래 화면 캡처에서 보여준 절차를 따라 "필요한 자격 증명은 무엇입니까?"를 클릭하십시오.

    다음 페이지에서는 Google sheet에서 프로그램 방식으로 추가 및 업데이트 작업을 수행하고자 하므로 서비스 계정 이름, 서비스 계정 id 및 편집기 역할을 제공해야 합니다.

    위 단계에서 계속을 클릭하면 인증 세부 정보가 포함된 JSON 파일이 생성됩니다.

    이 파일을 시스템에 저장합니다.
    이때, 우리는 이미 서비스 계정을 성공적으로 만들었다.이제 Google drive api를 사용하는 것과 같은 절차를 사용하여 Google Sheet api를 사용합니다.

    축하합니다!우리는 Python을 사용하여 구글 전자 표에 접근할 수 있는 서비스 계정을 성공적으로 만들었습니다.Python 프로그램에 접근할 수 있도록 예시 전자 표를 만듭니다.https://docs.google.com/spreadsheets로 넘어가서 견본표를 만듭니다.나는 이미 이 예시 강좌를 위해 Student라는 작업표를 만들었다.

    python 코드에서 이 테이블을 사용하려면 Google api 클라이언트 전자 우편 ID와 파일을 공유해야 합니다. 전자 표를 열고 오른쪽 상단에 있는 공유 단추를 누르십시오.이전 예에서 다운로드한 JSON 파일에서 클라이언트 이메일을 찾을 수 있습니다.

    Python 라이브러리 설치


    python을 사용하여 전자 표를 추가하고 업데이트할 수 있도록 이 라이브러리를 설치하십시오
    pip install gspread
    pip install oauth2client
    
    이 두 개의 라이브러리는 우리에게 있어서 이미 이 강좌를 배우기에 충분하다.그러나, 우리는 판다스를 설치하여 판다스의 데이터 상자를 사용하여 우리의 데이터를 볼 수 있다
    pip install pandas as pd
    

    인코딩을 시작해보도록 하겠습니다.


    Google 계정을 만든 다음 Google drive api와 Google sheet api를 사용하고 자격 증명을 만들어 JSON 파일로 로컬 드라이브에 저장합니다.또한 예제 스프레드시트를 작성하여 JSON 파일에 제공된 고객 이메일과 공유합니다.상기 절차에서, 우리는 필요한 Python 라이브러리를 설치했다.이제 코드를 작성해 보도록 하겠습니다.🙂
    import gspread
    from oauth2client.service_account import ServiceAccountCredentials
    import pandas as pd
    
    위의 코드를 통해 우리는 이전에 설치한 라이브러리를 가져왔다.현재, 전자 표에 접근하기 전에, 우리는 다운로드한 JSON 파일을 사용하여 신분 검증을 해야 한다
    #Authenticate Google service account
    gp = gspread.service_account(filename='Testapp-9f185f872dd9.json')
    
    JSON 파일의 올바른 경로를 제공해야 합니다.나는 이미 이 파일을 프로젝트 디렉터리에 복사했기 때문에 이름만 있으면 충분하다.
    이제 단계 중 하나에서 작성한 스프레드시트 "Student"를 엽니다.
    #Open Google spreadsheet
    gsheet = gp.open('Student')
    
    스프레드시트가 열려 있으므로 다음 행으로 액세스할 워크시트를 선택해야 합니다.
    #Select worksheet
    wsheet = gsheet.worksheet("Sheet1")
    
    위에서 보듯이 첫 번째 워크시트 "Sheet1"을 선택했습니다.

    워크시트에서 모든 레코드 읽어들이기


    현재, 기록이나 단원격 값을 검색하기 위해서, 우리는 아래의 함수 중 하나를 사용할 수 있다

  • get all values ()는 워크시트의 모든 값을 목록으로 가져옵니다.

  • get all records ()는 사전 목록으로 워크시트에서 모든 값을 가져옵니다.
  • Jupyter 노트북에서 하나씩 해보도록 하겠습니다.
    wsheet.get_all_values()
    
    Jupyter 노트에서 위의 문을 출력합니다.그림에서 보듯이 모든 기록은 사전 목록으로 가져옵니다
    [['Student', 'Course', 'Grade', 'Score'],
     ['John', 'Data Science', 'A', '480'],
     ['Amit', 'Cyber Security', 'B', '440'],
     ['Ronit', 'Data Science', 'A', '475'],
     ['Maya', 'Business Analytics', 'A', '481']]
    
    get all values()에서도 유사
    wsheet.get_all_records()
    
    출력:
    [{'Student': 'John', 'Course': 'Data Science', 'Grade': 'A', 'Score': 480},
     {'Student': 'Amit', 'Course': 'Cyber Security', 'Grade': 'B', 'Score': 440},
     {'Student': 'Ronit', 'Course': 'Data Science', 'Grade': 'A', 'Score': 475},
     {'Student': 'Maya',
      'Course': 'Business Analytics',
      'Grade': 'A',
      'Score': 481}]
    
    데이터 프레임을 사용합니다.우선, 우리는 작업표에서 모든 값을 추출한 다음에 데이터 프레임에 열을 설정합니다. 데이터 프레임은 모든 줄의 첫 번째 목록일 뿐입니다.
    all_rows = wsheet.get_all_values()
    columns = all_rows.pop(0)
    df = pd.DataFrame(all_rows,columns=columns)
    
    이것은 df의 출력입니다
        Student Course  Grade   Score
    0   John    Data Science    A   480
    1   Amit    Cyber Security  B   440
    2   Ronit   Data Science    A   475
    3   Maya    Business Analytics  A   481
    

    워크시트에서 셀 값 읽어들이기


    특정 칸 값을 가져오려면acell 함수를 사용하십시오.다음 세션은 "John"을 인쇄합니다.
    cell_A2 = wsheet.acell('A2').value
    print(cell_A2)
    
    좌표를 사용하여 값을 얻으려면 다음과 같이 *cell* 함수를 사용합니다.이것도'존'프린트할 거예요.
    cell = wsheet.cell(2,1).value
    print(cell)
    

    다른 워크시트 만들기


    동일한 스프레드시트에 다른 워크시트를 작성하려면 워크시트 추가 기능을 사용합니다.
    another_sheet = gsheet.add_worksheet(title="AnotherSheet", rows="10", cols="10")
    
    "AnotherSheet"이라는 또 다른 워크시트를 만듭니다. 열 열 열 10개를 포함합니다.

    워크시트 삭제


    함수**del worksheet**를 사용하여 워크시트를 삭제합니다.그래서 아래의 설명은 우리가 방금 마지막 단계에서 만든 다른 표를 삭제할 것이다
    gsheet.del_worksheet(another_sheet)
    
    

    셀 값 업데이트


    셀 값을 업데이트하려면 다음과 같이 **를 사용하여 ** 함수를 업데이트할 수 있습니다.
    다음 동작은 '존' 을 '다윗' 으로 대체합니다
    wsheet.update('A2', 'David')
    
    우리는 좌표를 사용하여 같은 조작을 수행할 수 있다
    worksheet.update_cell(1, 2, 'David')
    
    

    새 행 삽입


    append row를 사용하면 끝에 새 행을 추가할 수 있습니다.아래 그림에서 보듯이 우리는 신입생을 위해 한 줄을 추가하고 있다.
    wsheet.append_row(["Gina","Computer Science",'B',447])
    

    결론


    위의 예에서 보듯이 gspread**는 매우 유용한 라이브러리로 구글 전자 표에 접근할 수 있다.위에 표시된 예시와 절차가 구글 폼으로 응용 프로그램을 구축하는 데 도움을 줄 수 있기를 바랍니다.
    나는 줄곧 *gspread*를 나의 응용 프로그램으로 사용하고 문자로 나의 일상 지출을 추적하고 있다.다음 글은 **gspread, Twilio**와 **Flask를 사용하여 비용 추적기를 구축하는 방법을 소개하고 Heroku에 배치할 것입니다🙂

    좋은 웹페이지 즐겨찾기