Как отправить список массивов из расширения Chrome в мое приложение Python?

#google-chrome #google-chrome-extension #chrome-native-messaging

#google-chrome #google-chrome-extension #chrome-native-messaging

Вопрос:

Я пытаюсь отправить список массивов из расширения Chrome в мое родное приложение Python, используя собственный API обмена сообщениями.

background_script.js

 port = window.browser.runtime.connectNative(hostName);
port.postMessage(request.attributes);
  

my_app.py

 text_length_bytes = sys.stdin.read(4)
text_length = struct.unpack('i', bytes(text_length_bytes, 'utf-8'))[0]
text = sys.stdin.read(text_length)
  

Соединение между расширением Chrome и собственным приложением Python прекращается, когда я отправляю список массивов в качестве атрибута в сообщении post, но оно работает, когда я указываю строку в качестве атрибута.

Комментарии:

1. Посмотрите, что на самом деле было отправлено с помощью console.log(JSON.stringify(request.attributes))

2. Это отправка списка списков

3. Пример, приведенный в документации, text = sys.stdin.read(text_length).decode('utf-8') — в вашем коде отсутствует вызов decode.

4. Я выполнил декодирование здесь text_length = struct.unpack(‘i’, байты(text_length_bytes, ‘utf-8’))[0]

5. Вы только расшифровали длину.