私はRFIDリーダを使用してメッセージを受信しています。私はそれらをemptylist = []
に追加することによって重複したメッセージを避けようとしています。リストにそれらが存在する場合、メッセージを追加しません。以下は私のコードです:ユニークな着信メッセージをリストに追加するにはどうすればよいですか?
import paho.mqtt.client as mqtt
def on_connect(client, userdata, flags, rc):
print("Connected with result code " + str(rc))
client.subscribe("/whatver/#")
def on_message(client, userdata, msg): # when PUBLISH msg is rcvd frm the server
payloadjson = json.loads(msg.payload.decode('utf-8'))
line = payloadjson["value"].split(',')
epc = line[1]
payload = {'a': epc[11:35], 'b':payloadjson["devicename"], 'c':payloadjson["sensorname"]}
emptylist = []
emptylist.append(payload)
if payload not in emptylist:
emptylist.append(payload)
print (emptylist)
test = mqtt.Client(protocol = mqtt.MQTTv31)
test.connect(host=_host, port=1883, keepalive=60, bind_address="")
test.on_connect = on_connect
test.on_message = on_message
test.loop_forever()
は、しかし、私はがemptylist
に追加されていることを示しており、以下のように出力を取得していますが、複数の区切られたリストの中に保存されています。また、RFIDリーダが同じタグを読み取っている場合、同じ出力を印刷し続けます。重複したメッセージを削除して、RFIDリーダーが同じタグを読み取っても1つだけ保持したいと思います。
[{'b': 'READERBASIN.3', 'c': 'ANTENNA.2', 'a': '000000000000130000624462'}] # from Tag A
[{'b': 'READERBASIN.3', 'c': 'ANTENNA.2', 'a': 'abcxxx000000130000627000'}] # from Tag B
[{'b': 'READERBASIN.3', 'c': 'ANTENNA.2', 'a': '000000000000130000624462'}] # from Tag A
[{'b': 'READERBASIN.3', 'c': 'ANTENNA.2', 'a': '000000000000130000624462'}] # from Tag A
.
.
.
どうすればこの問題を解決できますか?
この素晴らしいチップをありがとう! –