2017-06-28 5 views
-3

I nächsten Code habe:Taking Informationen aus der Liste im Wörterbuch

ind=[{'id':123,'name'='Andrew','universities':[{'country'=123,'state'=123}], school=[{'name'=Beliech,'state'=...}],'type'=[{}] }] 

I Namen der Schule in der Schule Feld und Staat mit Land in Universitäten Feld nehmen muß es in Datenbank hinzuzufügen. Ich habe versucht, Liste ind in Wörterbuch (info = ind [0]) zu konvertieren und dann Informationen zu nehmen, aber ich habe Problem, dass Schule ist auch eine Liste, so kann ich nicht verwenden ind['school']['name']. Universitäten und Schulen sind nicht statisch, sie können sich gegenseitig ersetzen und am Anfang/Ende/Mitte bleiben. Wie kann ich diese Info nehmen?

Antwort

0
import pandas 
ind=[{'id':123,'name':'Andrew','universities':[{'country':123,'state':1234}], 'school':[{'name':"Beliech"}]}] 
name_list = [] 
school_name_list = [] 
university_country_list = [] 
university_state_list = [] 
for i in range(len(ind)): 
    name_list.append(ind[i]['name']) 
    school_name_list.append(ind[i]['school'][0]['name']) 
    university_country_list.append(ind[i]['universities'][0]['country']) 
    university_state_list.append(ind[i]['universities'][0]['state']) 
Output = pandas.DataFrame({'Name':name_list,'School_Name':school_name_list,'University_Country':university_country_list,'University_State':university_state_list}) 

Ich war nicht genau mit der Frage klar. basierend auf meinem Verständnis, das ist, was ich mit

0

kommen konnte Ich versuche, Sie zu beantworten, aber ich konnte einige Punkte nicht wirklich verstehen.

ind = [{'id':123, 'name':'Andrew','universities':[{'country':123,'state':123}], 'school':[{'name':'Beliech','state':...}],'type':[{}]}] 

list_dict = [] 
for index in range (0, len(ind[0]["school"])): 
    new_dict = { 
     "School_Name" : ind[0]["school"][index]["name"], 
     "University_Country": ind[0]["universities"][index]["country"], 
     "University_State": ind[0]["universities"][index]["state"], 
    } 
    list_dict.append(new_dict) 

Ich erstelle nur ein Wörterbuch für jede Schule, zu der eine Universität gehört. In Ihrem Beispiel ist die Schule Beliech mit der Universität im Land 123 und im Staat 123 verbunden. Alle Wörterbücher sind in einer Liste gespeichert. Ich weiß nicht, ob das wirklich das ist, wonach Sie suchen. Ich hoffe es.

Bitte achten Sie auf Wörterbuchschlüssel. Du hast Schule und Beliech als zwei Variablen und nicht als Strings geschrieben. Ich denke, es ist nicht das, was du willst.

EDIT

Ich hoffe, es wird das sein, was Sie suchen. Wenn nicht, versuchen Sie genauer zu sein, bitte:

ind = [{'id':123, 'name':'Andrew','universities':[{'country':123,'state':123}], 'school':[{'name':'Beliech','state':...}],'type':[{}]}] 

user_name = input("Please, enter your name") 

for index in range (0, len(ind)): 
    if ind[index]["name"] == user_name: 
     dict = ind[index] 
     school_list = [] 
     for school in range(0, len(dict["school"])): 
      school_list.append(dict["school"][school]["name"]) 
     university_list = [] # list of dictionary with all the info about a University 
     universitycountry_list = [] 
     universitystate_list = [] 
     for uni in range(0, len(dict["universities"])): 
      university_list.append(dict["universities"][uni]) 
      universitycountry_list.append(dict["universities"][uni]["country"]) 
      universitystate_list.append(dict["universities"][uni]["state"]) 
     found = True 
     break 
    else: 
     found = False 

if not found: 
    print("The user {} is not in the Database".format(user_name)) 

# print(school_list) 
# print(university_list) 
# print(universitycountry_list) 
# print(universitystate_list) 
+0

Sorry für Missverständnis, mein schlechtes. Diese Liste enthält persönliche Informationen des Benutzers. Von der Liste brauche ich getrennt Informationen von Schule und Universität, um sie zu db hinzuzufügen. Es gibt keine Verbindung zwischen ihnen. Staat kann anders sein oder gar kein Staat. –

+0

Hätten Sie also Zugriff auf school_name, university_country, university_state (das könnten alle Listen sein) aus dem Namen, in Ihrem Beispiel "Andrew"? – CunivL

+0

Ich kenne den Benutzernamen vorher nicht. Mein gesamtes Skript sammelt Daten nach Benutzer-ID oder Profil-URL (abhängig vom Profil) mit API. Diese Liste ist das Ergebnis eines Skripts. –

Verwandte Themen