Python räkna antalet celler från google sheets
Hej! Jag är vääldigt ny på python och har inte stenkoll men tänkte bästa sättet är väl att bara ge sig in i smeten.
Så det jag försöker göra är att först dra ut data från google sheet och printa ut det.
Det fungerar bra, del två är att jag vill ha en count som listar hur många av samma det finns, exempelvis
20 "23.1", 32 "22.1".
Det är här jag går bet, jag lägger koden i spoiler, jag är som sagt väldigt ny och försöker förstå allt, tittat, läst och testat massa varianter, men resultatet av koden är att jag enbart får ut en count på själva den variablen jag använder för att generea listan från google sheets.
(Sheetid är censuerat)
import os.path
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
from collections import Counter
# If modifying these scopes, delete the file token.json.
SCOPES = ["https://www.googleapis.com/auth/spreadsheets"]
# The ID and range of a sample spreadsheet.
SAMPLE_SPREADSHEET_ID = ""
SAMPLE_RANGE_NAME = "Sheet1!A2:B7"
def main():
"""Shows basic usage of the Sheets API.
Prints values from a sample spreadsheet.
"""
global count
creds = None
# The file token.json stores the user's access and refresh tokens, and is
# created automatically when the authorization flow completes for the first
# time.
if os.path.exists("token.json"):
creds = Credentials.from_authorized_user_file("token.json", SCOPES)
# If there are no (valid) credentials available, let the user log in.
if not creds or not creds.valid:
if creds and creds.expired and creds.refresh_token:
creds.refresh(Request())
else:
flow = InstalledAppFlow.from_client_secrets_file(
"credentials.json", SCOPES
)
creds = flow.run_local_server(port=0)
# Save the credentials for the next run
with open("token.json", "w") as token:
token.write(creds.to_json())
try:
service = build("sheets", "v4", credentials=creds)
# Call the Sheets API
sheet = service.spreadsheets()
result = (
sheet.values()
.get(spreadsheetId=SAMPLE_SPREADSHEET_ID, range=SAMPLE_RANGE_NAME)
.execute()
)
values = result.get("values", [])
version = [['values'.count(item), item] for item in set('values')]
print(version)
except HttpError as error:
print(error)
if __name__ == "__main__":
main()
Resultatet av koden blir [[1, 'v'], [1, 'e'], [1, 'a'], [1, 'l'], [1, 'u'], [1, 's']] alltså bokstäverna i variablen values.
Vad är det jag missar?
Tack på förhand.
Chassi: Fractal design Define C Mobo: aorus x570 elite
Cpu Ryzen 3600 Kylare noctua nh-d15Gpu 7900XT Ram g.skill flare x black
Kingston a2000 1TB 2x PSU: EVGA SuperNova 850 G2