Задать вопрос
dancha
@dancha
Обожаю python

Как из строки получить словарь (из str в dict)?

Добрый день, ребята.

Есть у меня допустим строка:

sunofdog = "{'d': '19', 'mon': '09', 'month': 'Сентябрь',  'address': 'Г. Кемерово ул. Ноградская д. 16, кв. 1'}"


Соответственно я хочу получить, например:
dicktator = превращение_в_словарь(sunofdog)  #  Это например
print dicktator['month']
---
Сентябрь


Много всего пересмотрел.

Такой вариант не канает, так как в словаре есть 'address', а в нем есть запятые, соотвествено этот метод пытаеться порезать значение на ключи и значения:
dicktator = dict(e.split(': ') for e in sunofdog.split(', '))


Так же не помогает:
import json
json.dumps(sunofdog)


Жду помощи ребяты
  • Вопрос задан
  • 18330 просмотров
Подписаться 2 Простой 2 комментария
Решения вопроса 1
NeiroNx
@NeiroNx
Программист
Можно привести к стандарту json или eval(обычный или безопасный из пакета ast)
>>> sunofdog = "{'d': '19', 'mon': '09', 'month': 'Сентябрь',  'address': 'Г. Кемерово ул. Ноградская д. 16, кв. 1'}"
>>> a = json.loads(sunofdog.replace("'",'"'))
>>> type(a)
"<class 'dict'>"
>>> b = eval(sunofdog)
>>> type(b)
"<class 'dict'>"
>>> a
{'d': '19', 'mon': '09', 'month': 'Сентябрь', 'address': 'Г. Кемерово ул. Ноградская д. 16, кв. 1'}
>>> a == b
True
>>> 
>>> import ast
>>> c = ast.literal_eval(sunofdog)
>>> a == c
True
>>>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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