2015-10-19 144 views
0

getcat(di) - (line 6)函數返回「無」或一些字符串到我的主函數。嵌套for循環的Python「條件」

我想補充此字符串字典,如果它不是無...這裏是代碼:

getids = Url.objects.values_list('keyword', 'id', 'url') 
    for keyword, id, url in getids:    
     if Url.objects.get(id=id).url != None: 
     ... 
     ... 
     ala = getcat(anResults) 

     if str(ala) != 'None': 
      dictt['shopping'] = ala   
     else: 
      pass 

問題是,一旦它通過=「無」它不斷補充說,相同的字符串給大家!未來的循環。

我試着把破碎處處放置,似乎無法使它工作。如果我更換

dictt['shopping'] = ala 

有:

print url, ala 

它工作正常,並打印了正確的URL和Ala價值。

任何想法?

+2

請考慮添加[mcve]。 – bereal

+0

題外話:與'None'比較,使用'is' /'不是',而不是'=='/'!='。例如測試'如果Url.objects.get(id = id).url不是None:'。幾乎總是應該使用對象標識符運算符來測試'None',而不是使用豐富的比較運算符,從而避免了開銷和(對於寫得不好的富比較運算符)拋出異常。 – ShadowRanger

回答

0

代碼str(ala) != 'None'的這部分的字符串進行比較,以另一字符串與值

如果你想有一個明確的比較,你可以重新寫入str(ala) != None(在無語句不包括引號)

另一種方法是重新寫更像一個Python的方式:

if ala: 
    dictt['shopping'] = ala