Сериализация строк байтов Python к JSON, сохранение порядковых символьных значений

У меня есть некоторые двоичные данные, произведенные как основа 256 строк байтов в Python (2.x). Я должен считать их в JavaScript, сохранив порядковый номер каждого байта (символ) в строке. Если Вы позволите мне смешивать языки, я хочу закодировать строку s в Python, таким образом, что ord(s[i]) == s.charCodeAt(i) после того, как я считал его назад в JavaScript.

Самый чистый способ сделать это, кажется, для сериализации моих строк Python к JSON. Однако json.dump не любит моих строк байтов, несмотря на игру с ensure_ascii и encoding параметры. Существует ли способ закодировать строки байтов к строкам Unicode, который сохраняет порядковые символьные значения? Иначе я думаю, что должен закодировать символы выше диапазона ASCII в JSON-стиль \u1234 Escape; но кодек как это, кажется, не среди Python codecs.

Существует ли простой способ сериализировать строки байтов Python к JSON, сохраняя символьные значения, или я должен записать свой собственный кодер?

6
задан Doctor J 21 April 2010 в 02:31
поделиться

2 ответа

Есть ли способ кодировать строки байтов в строки Unicode, который сохраняет порядковые значения символов?

Байт -> преобразование юникода называется декодировать , а не кодировать . Но да, декодирование с помощью кодека, такого как iso-8859-1 , действительно должно «сохранять порядковые значения символов» по ​​вашему желанию.

5
ответ дан 16 December 2019 в 21:36
поделиться

Не могли бы вы просто использовать Base64? (Модуль Python base64 , Javascript имеет несколько реализаций, одна из которых - здесь .)

Нет причин использовать экранированные ASCII или UTF-8, если только ваши данные не являются почти полностью текстовыми.

3
ответ дан 16 December 2019 в 21:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: