Найти - Пользователи
Полная версия: Помогите пожалуйста с преобразованием строк
Начало » Центр помощи » Помогите пожалуйста с преобразованием строк
1 2 3
wghost
Есть данные в формате:
print data
отдает
key1=value1
key2=value2
а нужно:
{'key1': 'value1', 'key2': 'value2'}
s0rg
a = data[0]
b = dict(map(lambda x: x.split('='), a.split()))
print b
wghost
s0rg
a = data[0]
b = dict(map(lambda x: x.split('='), a.split()))
print b
Спасибо.
Вылезла проблема. В одном из значений value есть знаки =. Сразу этого не заметил( Видимо это причина ошибки:
    b = dict(map(lambda x: x.split('='), a.split()))
ValueError: dictionary update sequence element #0 has length 4; 2 is required
Можно игнорировать все знаки равенства в ‘value’? В ‘key’ их быть не может…
Или другое решение?
s0rg
dict(map(lambda x: x.split('=', 1), a.split()))
wghost
s0rg
dict(map(lambda x: x.split('=', 1), a.split()))
Да, так отработало.
Отдает:
{'key1': 'value1'}
{'key2': 'value2'}
А как лучше объединить в:
{'key1': 'value1', 'key2': 'value2'}
?
Чтобы не выдавало ошибку если вдруг будет только одна сторока:
{'key1': 'value1'}
s0rg
[{c[0]: c[1]} for c in map(lambda x: x.split('=', 1), a.split())]
wghost
s0rg
[{c[0]: c[1]} for c in map(lambda x: x.split('=', 1), a.split())]
Не уверен, что правильно понял, но:
a = data[0]
b = [{c[0]: c[1]} for c in map(lambda x: x.split('=', 1), a.split())]
print b
Отдает:
[{'key1': 'value1'}]
[{'key2': 'value2'}]
П.С. Бесполезно мучаю join() с этой задачей?
s0rg
странно:
In [18]: a
Out[18]: 'key1=value1\nkey2=value2'

In [19]: [{c[0]: c[1]} for c in map(lambda x: x.split('=', 1), a.split())]
Out[19]: [{'key1': 'value1'}, {'key2': 'value2'}]
sp3
dict(c.split('=',1) for c in a.split())
wghost
s0rg
странно:
In [18]: a
Out[18]: 'key1=value1\nkey2=value2'

In [19]: [{c[0]: c[1]} for c in map(lambda x: x.split('=', 1), a.split())]
Out[19]: [{'key1': 'value1'}, {'key2': 'value2'}]
Ну здесь вроде тоже вывод разделен фигурными скобками. У меня вместо запятых между скобками выводит перенос строки… (Python 2.6.6, linux.) А требуется:

{'key1': 'value1', 'key2': 'value2'}
единой строкой… т.е. всеже join()?…
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