Импорт словарей из файла в 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 в цикле, которую я мог бы использовать, чтобы выбрать, какой учетной записью я управляю?

570   1  

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

    Ничего не найдено.