Я знаю, что это вообще плохая идея, но я думаю, что для моей задачи это должно быть хорошо. Мне приходится иметь дело с несколькими страницами Facebook, каждый из которых имеет свой токен доступа. В зависимости от выбора пользователя я вызываю график Facebook, чтобы получить представление о конкретной странице.Преобразование строки python в переменную
Мой код:
#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+'')
хранить все жетоны в отдельном файле, чтобы держать их в тайне:
token_pagename1 = 'TOKEN1'
token_pagename2 = 'TOKEN2'
То, что я хочу сделать, это пройти token_pagename1
в мой requests.get
, если пользователь выбирает «pagename1» из предустановленного списка имен.
Я построить новую строку на основе входных данных пользователя:
page_token = 'token' + '_' + page_name
Но теперь мне нужно преобразовать эту строку в имени переменной token
. Я попытался использовать vars()[page_token]
вместо token
, но получаю KeyError от requests.get
.
Может ли кто-нибудь предложить элегантное решение моей проблемы? Благодаря!
Так почему бы не просто использовать словарь? 'tokens = {'pagename1': 'TOKEN1', # ...}'? Тогда вам нужно только «tokens [pagename]», и все готово. –
Спасибо! Сейчас все работает отлично. – aviss