Как опреобразовать str обратно в python list?

281 просмотра
0
0 Комментариев

Пытаюсь что-то сделать с ботом, работая при помощи telepot

Получаю данные:

a = bot.getUpdates()
 
 
print(type(a))
<class 'list'>

Содержимое:

print(a)
 
[{'update_id': 3344556677, 'message': {'message_id': 26, 'from': {'id': 3344556677, 'first_name': '31105', 'last_name': '63457', 'language_code': 'ru-RU'}, 'chat': {'id': 3344556677, 'first_name': '31105', 'last_name': '63457', 'type': 'private'}, 'date': 1497291259, 'text': 'asd'}}]

Затем передаю эти данные себе во вьюху POST запросом, и принимаю так:

raw = request.body.decode('utf-8')

Вывожу тип:

print(type(raw))
<class 'str'>

При попытке получить обратно python obj:

payload = json.loads(raw)

Получаю ошибку:

json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 3 (char 2)

Потому, что это не JSON.

Но как это правильно сделать ?


Добавить комментарий

1 Ответы

Python Опубликовано 12.12.2018
0

Так перед тем как передавать, закодируйте в строку в формате json:

str_a = json.dumps(list_a)

И полученная строка потом великолепно распакуется с помощью json.loads

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up