Seite 1 von 1

YouTube-Api Abfrage

Verfasst: Donnerstag 3. September 2020, 11:13
von christheturtle
Hallo Leute,

Ich habe ein Tutorial gefunden, in welchem erklärt wird, wie man mit der YouTube-Api die Abonnentenzahlen auslesen kann.

Code: Alles auswählen

import urllib.request

import json
from win10toast import ToastNotifier

import emoji


name="UCEfbRQVAzI1ZkGwYXs7VJVw"

key=ENTER_YOUR_KEY


data = urllib.request.urlopen("https://www.googleapis.com/youtube/v3/channels?part=statistics&id="+name+"&key="+key).read()
subs=json.loads(data)["items"][0]["statistics"]["subscriberCount"]




toaster= ToastNotifier()

a=emoji.emojize("You have %d" %int(subs) +" subscribers :penguin:")

toaster.show_toast("Sample",a)
Quelle: https://github.com/AdityaPai2398/Get-Nu ... 20Count.py

Soweit verstehe ich den Quellcode, allerdings würde mich interessieren, was genau in dieser Codezeile passiert:

Code: Alles auswählen

subs=json.loads(data)["items"][0]["statistics"]["subscriberCount"]


Mir ist klar, dass man sich mit den [ ]-Klammern durch die JSON-Datei bewegt, die der Server zurückgibt. Aber was genau macht die [0]? Wird damit das erste Element der Items ausgelesen, oder hat das einen anderen Hintergrund?

Ich freue mich auf eure Antworten!
Chris

Re: YouTube-Api Abfrage

Verfasst: Donnerstag 3. September 2020, 11:52
von einfachTobi
Richtig, der Index 0 steht für das erste Element des Objekts.

Re: YouTube-Api Abfrage

Verfasst: Donnerstag 3. September 2020, 12:44
von /me
christheturtle hat geschrieben: Donnerstag 3. September 2020, 11:13 Mir ist klar, dass man sich mit den [ ]-Klammern durch die JSON-Datei bewegt, die der Server zurückgibt.
Die Erklärung ist so nicht korrekt bzw. präzise genug. Wenn du den Zugriff mit ["items"] durchfühst, dann ist das weder ein Zugriff auf die JSON-Datei selber, noch auf den Text in der Datei. Es ist ein Zugriff auf die von json.loads(data) zurückgegebene Datenstruktur.

Re: YouTube-Api Abfrage

Verfasst: Donnerstag 3. September 2020, 14:29
von christheturtle
Danke für die Erklärung, Tobi! Und auch Danke für die Präzisierung, /me!