Найти - Пользователи
Полная версия: преобразование строки в словарь?
Начало » Python для новичков » преобразование строки в словарь?
1 2
gelius
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'}
py.user.next
gelius
Как из строки:
Accept-Language = pl,en-us;q=0.7,en;q=0.3
сделать словарь?

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

gelius
{'Accept-Language': 'pl,en-us;q=0.7,en;q=0.3'}
den4ik
#! 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),))
py.user.next
>>> 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'}
>>>
ajib6ept
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
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB