Импорт словарей из файла в Python 3.6
Я пытаюсь сделать бота на Python для управления некоторыми задачами в twitter с помощью tweepy.
Я сохраняю учетные данные для auth в нескольких файлах, но мне нужен только один файл. Вот пример:
for x in range(0, 3):
if x == 0 : from keysaccount1 import keys
if x == 1 : from keysaccount2 import keys
if x == 2 : from keysaccount3 import keys
if x == 3 : from keysaccount4 import keys
CONSUMER_KEY = keys['consumer_key']
CONSUMER_SECRET = keys['consumer_secret']
ACCESS_TOKEN = keys['access_token']
ACCESS_TOKEN_SECRET = keys['access_token_secret']
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
api = tweepy.API(auth, wait_on_rate_limit=True)
Файл, в котором хранятся данные, имеет следующий формат, например keysaccount1:
keys = dict(
consumer_key = 'xxxxxxxxxxxxx',
consumer_secret = 'xxxxxxxxxxxxx',
access_token = 'xxxxxxxxxxxxx',
access_token_secret = 'xxxxxxxxxxxxx',
)
Есть ли способ сохранить все это в одном файле, так как у меня есть переменная x в цикле, которую я мог бы использовать, чтобы выбрать, какой учетной записью я управляю?
1 ответ:
Вы можете использовать один словарь:
auth_data = { 0: { 'consumer_key': 'xxxxxxxxxx', 'consumer_secret': 'xxxxxxxxxxxxx', 'access_token': 'xxxxxxxxxx', 'access_token_secret': 'xxxxxxxxxxxxxx', } ...Вы можете получить доступ к определенным полям следующим образом:
for x in range(0, 3): keyset = auth_data[x] auth = tweepy.OAuthHandler(keyset['consumer_key'], keyset['consumer_secret']) auth.set_access_token(keyset['access_token'], keyset['access_token_secret']) api = tweepy.API(auth, wait_on_rate_limit=True)Чтобы сохранить данные, вы можете просто использовать модуль python pickle:
import pickle def read(): with open('data/keys.p', 'r') as f: return pickle.load(f) def write(data): with open('data/keys.p', 'w+') as f: return pickle.dump(f, data) # Read data auth_data = read() # Write data write(auth_data)
Comments