Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 8, 2017 21:32:44

wesmokeweed
Зарегистрирован: 2017-10-04
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Регулярные выражения

Есть txt файл с запарсенными данными. Вот часть из них:

{'b': ,
‘e’: 'FT',
‘f’: ,
‘g’: 5,
‘h’: 5,
‘id’: ,
‘l’: ,
‘m’: 'Desert Eagle | Conspiracy',
‘n’: ,
‘o’: ,
‘p’: 2.13,
‘u’: ‘k4a’,
‘v’: 10,
‘y’: },

Необходимо достать выделенный жирным шрифтом текст. И хоть убей, не могу допереть, как их достать. Максимум, на что я способен, это выделить всю строку с необходимым мне текстом. Помогите обделенному умом

Офлайн

#2 Окт. 8, 2017 22:38:55

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Регулярные выражения

Так если это словарь, получить значение по ключу

Офлайн

#3 Окт. 9, 2017 12:44:43

AndreyGrish
От: Москва, Россия
Зарегистрирован: 2017-10-09
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Регулярные выражения

Да, посмотрите словари программирование на Python.

Отредактировано AndreyGrish (Окт. 9, 2017 12:48:42)

Офлайн

#4 Окт. 10, 2017 19:27:35

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Регулярные выражения

Romissevd
Так если это словарь
дело в том что это мы видим словарь а питон эти данные из файла получит как строку
 '{'b': ,‘e’: 'FT',‘f’: ,‘g’: 5,‘h’: 5,‘id’: ,‘l’: ,‘m’: 'Desert Eagle | Conspiracy',}'
и из этой строки вы не получите значение по ключу






Офлайн

#5 Окт. 10, 2017 21:20:38

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Регулярные выражения

тогда преобразовать строку в словарь

 import re
st = "{'b': ,'e': 'FT','f': ,'g': 5,'h': 5,'id': ,'l': ,'m': 'Desert Eagle | Conspiracy'}"
print(dict(zip(re.findall(r'(?<=\')[\w\s]+(?=\':)', st), [re.search(r'(?<=: )[^}]*', x).group() for x in st.split(',')])))
и получить значения по ключу

Офлайн

#6 Окт. 11, 2017 09:53:01

Vintets
Зарегистрирован: 2016-07-05
Сообщения: 41
Репутация: +  6  -
Профиль   Отправить e-mail  

Регулярные выражения

А это и не словарь. Там пустые значения, так не может быть

 {id: }
Может быть или None или пустая строка ''.
Тогда и регулярки не нужны

 import json
st = "{'b': '','e': 'FT','f': '','g': 5,'h': 5,'id': '','l': '','m': 'Desert Eagle | Conspiracy'}"
print(json.loads(st.replace("'", '"')))

Ну или в крайнем случае
 print(eval(st))

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version