Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 23, 2014 21:12:54

gelius
Зарегистрирован: 2013-03-18
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

преобразование строки в словарь?

lng = random.choice([line for line in open('all.txt', 'r')])[:-1]
print lng
lng = dict(item.split(' = ') for item in lng.split('\n'))
print lng
Отдает:
Accept-Language = ja-JP
{'Accept-Language': 'ja-JP\r'}

Офлайн

#2 Авг. 23, 2014 21:19:49

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10015
Репутация: +  857  -
Профиль   Отправить e-mail  

преобразование строки в словарь?

gelius
Как из строки:
Accept-Language = pl,en-us;q=0.7,en;q=0.3
сделать словарь?

Приведи словарь, который должен получиться.



Офлайн

#3 Авг. 23, 2014 21:25:14

gelius
Зарегистрирован: 2013-03-18
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

преобразование строки в словарь?

{'Accept-Language': 'pl,en-us;q=0.7,en;q=0.3'}

Офлайн

#4 Авг. 23, 2014 22:24:59

den4ik
Зарегистрирован: 2014-07-20
Сообщения: 59
Репутация: +  4  -
Профиль   Отправить e-mail  

преобразование строки в словарь?

#! coding: utf-8
import re
s = 'Accept-Language = pl,en-us;q=0.7,en;q=0.3'
al_r = re.compile('(.*)\s=\s(.*)')
l = dict((al_r.search(s).groups(),))
print(l)

{'Accept-Language': 'pl,en-us;q=0.7,en;q=0.3'}

А что бы работал первоначальный вариант нужно исправить:
s = dict([a.split('=', 1) for a in s])
на
s = dict((s.split(' = ', 1),))

Отредактировано den4ik (Авг. 23, 2014 22:49:10)

Офлайн

#5 Авг. 23, 2014 23:14:01

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10015
Репутация: +  857  -
Профиль   Отправить e-mail  

преобразование строки в словарь?

>>> import re
>>> 
>>> s = 'Accept-Language = pl,en-us;q=0.7,en;q=0.3\r\n'
>>> 
>>> d = dict([re.split(r' = |\r\n|\r|\n', s)[:2]])
>>> d
{'Accept-Language': 'pl,en-us;q=0.7,en;q=0.3'}
>>>



Офлайн

#6 Авг. 24, 2014 07:46:28

ajib6ept
От: От: От: От: От: От: От: От:
Зарегистрирован: 2013-08-04
Сообщения: 297
Репутация: +  26  -
Профиль   Отправить e-mail  

преобразование строки в словарь?

gelius, так разделяй с возвратом коретки

lng = random.choice([line for line in open('all.txt', 'r')])[:-1]
print lng
lng = dict(item.split(' = ') for item in lng.split('\r\n'))
print lng



_________________________
Python golden rule: Do not PEP 8 unto others; only PEP 8 thy self.
Don't let PEP 8 make you insanely intolerant of other people's code.

Отредактировано ajib6ept (Авг. 24, 2014 07:46:51)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version