2017-03-19 26 views
-1

csv列を検索して、各携帯電話が使用された回数をスクリプトに戻したいのですが...ここにコードはありますが、わかりません何が問題なのですか?csv列に何かが発生した回数をカウントする

import arcpy 
fc = "C:\Script\SAMPLES\SAMPLES.csv" 
field = "phone" 
iPhone = 0 
Android = 0 
other = 0 
cursor = arcpy.SearchCursor(fc) 
for row in cursor: 
    #print(row.getValue(field)) 
    if row.getValue(field)=='iPhone': 
     iPhone = iPhone + str(iPhone) 
     print "The number of iPhones: " + iPhone 
    elif:  
     Android=Android + str(Android) 
     print "The number of Androids: " + Android 
    elif: 
     other=other + str(other) 
     print "The number of other: " + other 

私は受け取ったエラーも含めました。 +のための

Traceback (most recent call last): 
    File "C:\Python27\ArcGIS10.4\Lib\site- packages\pythonwin\pywin\framework\scriptutils.py", line 326, in RunScript 
    exec codeObject in __main__.__dict__ 
    File "C:\Script\searchcursor.py", line 11, in <module> 
    iPhone = iPhone + str(iPhone) 
TypeError: unsupported operand type(s) for +: 'int' and 'str' 

答えて

0

サポートされていないオペランドのタイプ(S): 'int型' と 'str' は

これは(基本的に)一緒に数字と文字を追加しようとしていることを示しています。 Pythonは0(整数)と'0'(文字列)を異なるものとみなし、それらを一緒に追加することはできません。カウンターとしてiPhone(とAndroidother)を使用しているので、2つの整数を一緒に追加することをお勧めします。


私はまた、あなたがそのカウンタに追加しようとしていることについてはっきりしていません。

iPhone = iPhone + int(iPhone) 

iPhone = 0場合、その式がiPhone = 0 + 0です。すでに2つのiPhoneを数えた場合、その数式はiPhone = 2 + 2です - 値を増やすのではなく倍増しています。

あなたはおそらくしたい:

iPhone = iPhone + 1 

または(shorter

iPhone += 1 
関連する問題