2016-12-20 3 views
1

外の変数を取得し、私は次のコードを持っている:Pythonの:ループ

for response_i in response['response']: 

    var_1=None 
    if response_i['objkey'] == 'explorecube_data': 
     var_1=response_i['objcontent'][0]['title'] 
    if response_i['objkey'] == 'explorecube_data' and response_i['objcontent'][0]['title'] == var_1: 
    print(var_1) 

    dim_1=None 
    if response_i['objkey'] == 'explorecube_dimvalues': 
     dim_1=response_i['objcontent'][0]['title'] 
    if response_i['objkey'] == 'explorecube_dimvalues' and response_i['objcontent'][0]['title'] == dim_1: 
     print(dim_1) 

    ab=[var_1, dim_1] 
    print(ab) 

私は質問を更新しました。次 が出力されます。

['tos', None] 
[None, None] 
[None, 'lat'] 
[None, None] 

私は次のような出力がしたい:私は

+0

'response ['response']には何が含まれていますか? – DeepSpace

+0

コードを入力するために、コピーと貼り付けを使用して、字下げが書いた通りであることを確認します。あなたのオリジナルは[希望通りに動作します](http://ideone.com/TeL9eM)。 – molbdnilo

+0

質問が更新されました。 –

答えて

0

はこのような何かをしようと、この問題を解決するための任意の提案を高く評価

['tos', 'lat'] 

を、データを変換する必要がありますパンダのデータフレームに追加し、None値をドロップします。

import pandas as pd 


data = [] 

data.append([var_1, dim_1]) 

df = pd.DataFrame(data, columns=['var_1', 'dim_1']) 
df = df.dropna(how = 'all') 
2

ジェネレータを使用して必要な結果を生成し、それを印刷します。

def PrintGen(): 
    for response_i in response['response']: 
     if response_i['objkey'] == 'explorecube_data' or response_i['objkey'] == 'explorecube_dimvalues': 
      yield response_i['objcontent'][0]['title'] 
ab =PrintGen() 
listab =list(ab) 
print(listab) 

ジェネレータは、需要を満たすオブジェクトを生成するために使用され、あなたに適しています。

0

値がNoneではない場合は、abに値を追加するだけです。abをインスタンス化してループの外側に印刷する必要があります。

ab = [] 
for response_i in response['response']: 
    var_1=None 
    if response_i['objkey'] == 'explorecube_data': 
     var_1=response_i['objcontent'][0]['title'] 
    if response_i['objkey'] == 'explorecube_data' and response_i['objcontent'][0]['title'] == var_1: 
    print(var_1) 
    ab.append(var1) 

    dim_1=None 
    if response_i['objkey'] == 'explorecube_dimvalues': 
     dim_1=response_i['objcontent'][0]['title'] 
    if response_i['objkey'] == 'explorecube_dimvalues' and response_i['objcontent'][0]['title'] == dim_1: 
     print(dim_1) 
     ab.append(dim1) 

print(ab)