2017-06-28 21 views
-3

のリストから情報を取る:は、私は次のコードを持っている辞書

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

を私はデータベースにそれを追加するために、大学のフィールドに学校のフィールドに学校の名前、および国との状態を取る必要があります。リストindを辞書に変換して情報を取得しようとしましたが、問題があり、その学校もリストになっていますので、ind['school']['name']は使用できません。大学や学校は静的ではありません。彼らはお互いを置き換えて、途切れることなく/終わり/中にとどまることができます。この情報はどのように取ることができますか?

答えて

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}) 

私は質問ではっきりしていませんでした。私の理解に基づいて、これは私が思いつくことができるものです

0

私はあなたに答えようとしますが、私は実際にいくつかの点を理解することができませんでした。

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) 

大学が関連付けられている学校ごとに辞書を作成するだけです。あなたの例では、学校Beliechは国123の大学と州123に関連付けられています。すべての辞書はリストに保存されています。 これが実際にあなたが探しているものかどうかわかりません。そうだといい。

辞書キーには注意してください。あなたは文字列ではなく、2つの変数として学校とBeliechを書いた。私はあなたが望むものではないと思う。私はそれはあなたが探しているものことを願っています

EDIT

。そうでない場合は、より正確にお試しください。

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

誤解をおかけして申し訳ありません。このリストはユーザーの個人情報です。リストから私は別に学校と大学の情報をDBに追加する必要があります。それらの間には何の関係もありません。州は異なっていても、まったく州が存在しなくてもよい。 –

+0

あなたの例 "Andrew"では、名前からschool_name、university_country、university_state(すべてのリストである可能性があります)にアクセスできますか? – CunivL

+0

私は前にユーザーの名前を知らない。私の全体のスクリプトは、APIを使用してユーザーのIDまたはプロファイルのURL(プロファイルに依存)でデータを収集しています。このリストはスクリプトの結果です。 –

関連する問題