2017-08-03 2 views
2

Ich versuche, einen Bot in Python zu machen, um einige Aufgaben auf Twitter mit Tweepy zu verwalten.Importieren von Wörterbüchern aus einer Datei in Python 3.6

Ich speichere die Anmeldeinformationen für die Authentifizierung in mehreren Dateien, aber ich möchte nur eine Datei. Hier ein Beispiel:

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) 

Die Datei, auf dem die Daten gespeichert werden in diesem Format ist zum Beispiel keysaccount1:

keys = dict(
    consumer_key =   'xxxxxxxxxxxxx', 
    consumer_secret =  'xxxxxxxxxxxxx', 
    access_token =   'xxxxxxxxxxxxx', 
    access_token_secret = 'xxxxxxxxxxxxx', 
) 

Gibt es eine Möglichkeit dies alles auf der gleichen Datei zu speichern, wie Ich habe die Variable x auf dem Zyklus, die ich verwenden könnte, um zu wählen, welches Konto ich verwalte?

+0

Wie wäre es damit, eine Liste zu erstellen, in der all Ihre Schlüssel gespeichert sind, zB 'keys_list = [keys1, keys2, ...]' 'und ersetzen Sie dann if stuff by' keys_list [x] '? – kitman0804

Antwort

1

Sie können ein einzelnes Wörterbuch verwenden:

auth_data = { 
    0: { 
     'consumer_key': 'xxxxxxxxxx', 
     'consumer_secret': 'xxxxxxxxxxxxx', 
     'access_token': 'xxxxxxxxxx', 
     'access_token_secret': 'xxxxxxxxxxxxxx', 
     } 
    ... 

Sie bestimmte Felder wie diese dann zugreifen können:

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) 

Um die Daten zu speichern, können Sie einfach das Python-Modul Gurke verwenden:

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) 
+0

Funktioniert wie ein Charme! Vielen Dank!! : D –

+0

@RogerioCaeiro Perfekt! Lass es mich wissen, wenn du noch etwas anderes brauchst! Fühlen Sie sich frei, auch die Antwort zu akzeptieren :) – Zizouz212

Verwandte Themen