将python字符串转换为变量

时间:2017-01-14 17:24:01

标签: python facebook

我知道这通常是一个坏主意,但我认为我的任务应该没问题。我必须处理多个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。

有人能为我的问题提出一个优雅的解决方案吗?谢谢!

2 个答案:

答案 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'
}