我知道这通常是一个坏主意,但我认为我的任务应该没问题。我必须处理多个Facebook页面,每个页面都有自己的访问令牌。根据用户的选择,我调用Facebook的图表来获取该特定页面的见解。
我的代码:
#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'
如果用户从预设的名称列表中选择“pagename1”,我想要将token_pagename1
传递到requests.get
。
我根据用户的输入构建一个新字符串:
page_token = 'token' + '_' + page_name
但现在我需要将此字符串转换为变量名token
。
我尝试使用vars()[page_token]
代替token
,但我从requests.get
获得了一个KeyError。
有人能为我的问题提出一个优雅的解决方案吗?谢谢!
答案 0 :(得分:1)
转换您的命名代币列表:
from keras.preprocessing import sequence
Train_X = sequence.pad_sequences(Train_X, maxlen=maxlen)
Test_X = sequence.pad_sequences(Test_X, maxlen=maxlen)
到字典:
token_pagename1
token_pagename2
然后很容易找到您正在寻找的令牌:
tokens = {}
tokens['pagename1']
tokens['pagename2']
答案 1 :(得分:0)
创建字典
tokens[page_requested]
现在您可以通过
访问页面令牌tokens = {
'pagename1': 'TOKEN1'
'pagename2': 'TOKEN2'
}