2017-09-21 6 views
-1
def send_ivr_calls(sp_orders, base_url, api_key, extra_data): 
    for contact in sp_orders: 
     if len(contact) == 10: 
      contact = '0'+contact 

File "views.py", line 43, in calls if len(contact) == 10: 
TypeError: object of type 'NoneType' has no len() 

どのように私はsp_ordersリストは、任意のNone Sが含まれていないかどうかを確認することができますか?オブジェクトはLEN()を持っていない:

答えて

3

これを試してみてください。これは

def send_ivr_calls(sp_orders, base_url, api_key, extra_data): 
    for contact in sp_orders: 
     if contact and len(contact) == 10: 
       contact = '0'+contact 

は、あなたがその長さを取得しようとする前に接触がNoneでない保証します。短絡を指摘するための@Moses Koledoyeの功績。

+2

* if *節を使用し、 'and'で短絡を使用してみませんか?パーサーはそれを修正する可能性が非常に高いので、問題はあまりないかもしれません。 –

+3

'連絡先とlen(連絡先)== 10 'は壊れません。連絡先が* falsy *の場合、長さは決してチェックされません。 –

+0

@Kyle Higginson、[短絡についての良いスレッド](https://stackoverflow.com/questions/2580136/does-python-support-short-circuiting) – CommonSense

1
if contact is not None and len(contact) == 10: 
    contact = '0'+contact 
関連する問題