2017-01-14 5 views
-1

Ich weiß, es ist in der Regel eine schlechte Idee, aber ich denke, für meine Aufgabe sollte es in Ordnung sein. Ich muss mich mit mehreren Facebook-Seiten beschäftigen, jeder hat sein eigenes Zugangstoken. Abhängig von der Wahl des Benutzers rufe ich den Facebook-Graph auf, um Einsichten für diese bestimmte Seite zu erhalten.Konvertieren Sie eine Python-Zeichenfolge in Variable

Mein Code:

#User's input 
date_since = request.form['since'] 
date_until = request.form['until']  
page_name = request.form['page_name'] 
#Call Facebook Graph 
r = requests.get('https://graph.facebook.com/v2.8/'+page_name+'/insights/metric/day?since='+since+'&until='+until+'&access_token='+token+'') 

Ich speichere alle Tokens in einer separaten Datei, sie geheim zu halten:

token_pagename1 = 'TOKEN1' 
token_pagename2 = 'TOKEN2' 

Was ich token_pagename1 in meine requests.get wenn der Benutzer weitergeben wollen, ist wählt "Seitenname1" aus einer voreingestellten Liste von Namen.

konstruiere ich eine neue Zeichenfolge basierend auf der Eingabe des Benutzers:

page_token = 'token' + '_' + page_name 

Aber jetzt brauche ich token diese Zeichenfolge in einen Variablennamen zu konvertieren. Ich habe versucht, vars()[page_token] statt token zu verwenden, aber ich erhalte einen KeyError von requests.get.

Kann jemand eine elegante Lösung für mein Problem vorschlagen? Vielen Dank!

+0

warum also nicht nur ein Wörterbuch benutzen? 'Token = {'Seitenname1': 'TOKEN1', # ...}'? Dann brauchst du nur noch 'tokens [Seitenname]' und schon bist du fertig. –

+0

Danke! Alles funktioniert jetzt gut. – aviss

Antwort

1

Konvertieren Sie Ihre Liste mit dem Namen Token:

token_pagename1 
token_pagename2 

zu einem Wörterbuch:

tokens = {} 
tokens['pagename1'] 
tokens['pagename2'] 

Dann ist es einfach, das Token Sie suchen zu finden:

tokens[page_requested] 
0

erstellen ein Wörterbuch

tokens = { 
    'pagename1': 'TOKEN1' 
    'pagename2': 'TOKEN2' 
} 

Jetzt können Sie die Seite-Token über

Zugriff
tokens['pagename'] 
Verwandte Themen