0

Ich möchte zählen, wie oft ein Freund den Beitrag eines Benutzers mit Python gemocht hat.Graf Likes auf einem Facebook-Post mit Python + Facebook Graph API

Ich habe erfolgreich die Namen von Freunden, die die Beiträge gefallen haben, abgerufen. Aber es gibt einige Beiträge, die überhaupt keine haben. Der Code gibt dort einen Fehler. Ich benutze facebook-sdk 1.0.0. Jede Hilfe würde sehr geschätzt werden. -Code-Snippet ist:

import facebook 
graph=facebook.GraphAPI(access_token="") 
posts=graph.get_connections(id="me",connection_name="posts") 
for w in range (0,5): 
    p1=posts['data'][w]['likes']['data'] 
    for i in range (0,len(p1)): 
     r=p1[i]['name'] 
     print(r) 

Auch Gibt es eine Möglichkeit, die Liste der Freunde auf allen Beiträgen maximal Gleichen treffen, um herauszufinden?

Antwort

0

Ich bin ein wenig unsicher, was genau Sie hier vermissen oder was Ihre Frage ist, aber es sieht so aus, als ob Sie nur den gewünschten Namen definieren und zählen möchten, wie oft er in Ihrem Code vorkommt .

Etwas wie folgt aus:

import facebook 

likes = 0 # How many times they likes on your posts 
friend = "Bob" # Your friends name 

graph=facebook.GraphAPI(access_token="") 
posts=graph.get_connections(id="me",connection_name="posts") 
for w in range (0,5): 
    p1=posts['data'][w]['likes']['data'] 
    for i in range (0,len(p1)): 
     if friend == p1[i]['name'] 
      likes += 1 
print likes 

Auch könnten Sie Ihren Code wesentlich aufzuräumen, wenn Sie die Bereiche für Ihre for-Schleifen ditched und stattdessen über die Datenstrukturen selbst wiederholt. So etwas wie dies funktionieren würde:

import facebook 

likes = 0 # How many times they likes on your posts 
friend = "Bob" # Your friends name 

graph=facebook.GraphAPI(access_token="") 
posts=graph.get_connections(id="me",connection_name="posts") 

for user_post in posts['data']: 
    for name in user_post['likes']['data']: 
     if friend == name['name'] 
      likes += 1 
+0

thanx .. Ich möchte gerne die auf dem Benutzer für jeden Freund des Benutzers Post zählen und stattdessen Namen statisch auf eine Variable, legen nahe, eine andere Art und Weise, so dass die Zählung für jeden Freund des Gebens kann bestimmt werden – shivleen

+0

Anstatt für einen einzelnen Freund zu prüfen, halten Sie ein Wörterbuch mit dem Namen der Freunde als der Schlüssel. Wenn Sie einen Namen gefunden haben, prüfen Sie, ob er existiert. Wenn dies der Fall ist, erhöhen Sie den Wert um eins. Wenn der Name nicht existiert, initialisieren Sie einen Schlüssel mit seinem Namen und einem Wert von eins. Sie können dann alle Schlüssel und Werte im Wörterbuch ausdrucken, um eine vollständige Aufschlüsselung der Likes in den Beiträgen zu erhalten. – Kush131

+0

Ich habe versucht, Freunde Name in einer Liste hinzufügen, aber mit einem Fehler Traceback (letzten Anruf zuletzt): Datei "C: \ Benutzer \ hp- \ Downloads \ file1.py", Zeile 33, in if ((likenname [y]) == (likenname [x])): IndexError: Listenindex außerhalb des Bereichs – shivleen