YouTube-Api Abfrage

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
christheturtle
User
Beiträge: 42
Registriert: Sonntag 29. September 2019, 12:36

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
einfachTobi
User
Beiträge: 491
Registriert: Mittwoch 13. November 2019, 08:38

Richtig, der Index 0 steht für das erste Element des Objekts.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

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.
christheturtle
User
Beiträge: 42
Registriert: Sonntag 29. September 2019, 12:36

Danke für die Erklärung, Tobi! Und auch Danke für die Präzisierung, /me!
Antworten