前回の質問(pythonでシリアルポートからのバイナリデータ受信にてこずっています)の続きです。
無事に'res'という変数に'ab'というデータを取得することができました。
python
1res = ser.readline()[15:19].decode()
この値を元に読み込んだcsvファイルの'ab'を検索し、その戻り値を取得しようとしています。
python
1database = numpy.genfromtxt("database.csv", dtype = str, delimiter=",") 2k = 1 3while k < len(database) - 1: 4 if database[k,0] == res: 5 break 6 k = k + 1 7data = database[k,1]
問題としては'ab'という見出しは存在しているのですが、頭から総当たりをしても一致するものがなく、
毎回最下段の'N/A'を返してしまいます。
一方で直接
python
1res ='ab'
と手動入力した場合は、'ab'に対応する値を戻すことに成功しました。
型はどちらも'str'だったため型の問題でもないようで詰まってしまいました。
---補足1---
python
1res1 = ser.readline()[15:19].decode() 2res2 = "ab" 3print(res1, res2) 4print(res1==res2)
これでデバッグすると
python
1 ab 2False
空白になってるようです。
ちなみに
python
1res1 = ser.readline()[15:19].decode() 2res2 = "ab" 3print(res1) 4print(res2) 5print(res1==res2)
このように記述すると
python
1ab 2ab 3False
こうなりますが、やはりFalseなのは間違いないようです。
---補足2---
'ab'は'str'ではなく'repr'でみると'ab\r\n'もしくは'\x01ab\r'でした。
やっかいなことに2パターン存在するため、普通にスライスで抜き出すのは難しそうです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/23 10:46
2018/07/23 11:20
2018/07/23 12:43
2018/07/23 12:58
2018/07/23 22:43