2017-03-31 5 views
0

私はPythonを初めてプログラミングするときに問題が発生しました。私は別の番号で応答を分割して使用したい値を返すmysqlのdbを照会しています。python 3 division with mysql response

<class 'NoneType'> 
<class 'int'> 
av=sumer/num 
TypeError: unsupported operand type(s) for /: 'NoneType' and 'int' 

私は行をコメントアウトした場合::私は次の出力を取得し、コードを実行すると

def sum_perchange_by_sector(dates, num): 
    for row, in dates: 
    cur = con.cursor() 
    cur.execute("select sum(dbdev.perchange) from dbdev inner join symbol 

    on dbdev.symbol_id = symbol.id where symbol.sector = 
    'Industrials' and dbdev.price_date = %s;",(row)) 

    sumer=cur.fetchone()[0] 
    print(type(sumer)) 
    print(type(num)) 
    av=sumer/num 
    print(av) 

は:

av=sumer/num 
print(av) 

出力タイプを示しています私は、次のコードを持っていますas

<class 'float'> 
<class 'int'> 

私はこのタイプがどのように変化するように見えるのか、部門が機能しないのか?

+0

あなたはそれが同じデータ/同じ繰り返しだと確信していますか?除算の有無にかかわらず、2つの完全な実行トレースを比較し、 'float'の中で' None'が滑り落ちないかどうかを確認してください。 –

+0

インデントを修正するように編集してください。 –

答えて

0

これらの行が違いを生むのは本当に不可能です。 「sumer」は、実行するたびに異なるものになる可能性がより高くなります。「NoneType」は、おそらくクエリから返される結果に対応しません。

+0

あなたは正しいです、デバッグは最初の反復が結果を返さないことを示し、プログラムは死ぬ。最初の日付を削除すると、すべてが期待通りに機能します。正しい方向に私を指してくれてありがとう。 – bakes55