Преобразование байтов в диктовку - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть список объектов dict. Я преобразовал объект dict из списка в байты, преобразовав dict в str, а затем закодировал их.

    for idx, key in enumerate(key_data):
        key_data[idx] = str(key).encode('utf-8')
    for idx, value in enumerate(value_data):
        value_data[idx] = str(value).encode('utf-8')

    test = key_data[0]
    test = json.loads(test.decode('utf-8').replace("'",'"'))

Но когда я пытаюсь преобразовать их обратно, я получаю JSON error "json. decoder.JSONDecodeError: Ожидаемое значение: строка 1, столбец 183 (символ 182) "

Нужно ли что-нибудь добавить в мою строку? Помощь приветствуется. Спасибо!

1 Ответ

0 голосов
/ 19 февраля 2020

Как предложил @KlausD, Python имеет встроенный модуль json для сериализации или десериализации любых словарей JSON или python. Если у вас есть список JSON объектов, это не что иное, как массив JSON.

Модуль python json преобразует объект python dict в JSON объекты тогда как список и кортеж преобразуются в массив JSON. python str преобразуется в строку JSON. Целые числа и числа с плавающей точкой преобразуются в JSON числа. Логическое значение True преобразуется в JSON константа true.

В вашем случае вы можете сериализовать, вызвав

encoded = json.dumps(key_data).encode()

, и десериализовать, вызвав

decoded = json.loads(encoded.decode())
...