Я использую MQTT-сервер для получения полезной нагрузки JSON в байтах,
Client sent packet to server: {"cmd":"publish","topic":"/host-in","payload":"[\"C\",\"E\",\"G\",\"B\",\"D\",\"F#\",\"A\"]"}
, которая преобразует строку и анализирует ее. Что меня совершенно сбивает с толку, так это тот факт, что этот последний оператор всегда разрешается в Caught exception in on_message: must be str, not NoneType
import json
payload = json.loads(str(msg.payload.decode('utf-8')))
topic = msg.topic
for note in payload:
print(note is None)
print(note)
print("{}: {}".format(topic, payload))
chords.determine(payload)
Каждый из этих note is None
операторов разрешается в ложь, но выводит строку.
False
C
False
G#
etc.
Я поместил каждую из этих заметок в str(...)
, и у меня все еще нет ни одного типа. Что происходит?
Используя эту библиотеку, chords.determine(['C', 'E', 'G'])
разрешается нормально.