Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
 Аватар для alexasuvorov
0 / 0 / 0
Регистрация: 01.07.2020
Сообщений: 7

Работа функции ZIP и как разобрать данные пульса

29.08.2020, 11:15. Показов 1496. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Знающие и не только помогите разобрать данные на составляющие. Есть данные пульса измеренные за ночь в файле формата JSON, такого вида 'NzcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AOTkAAAA.....AAAAAAAAAA'. С ними я разобрался вот так
Python
1
2
3
4
5
6
7
8
9
10
11
12
def extractRawData(rawData):
    if rawData:
        r = json.loads(rawData)
        value = r[0]['value']
        f = base64.b64decode(value)
        #print(f)
        val = [[a, b, c] for a, b, c in zip(*[iter(f)] * 3)]
        #val = [ [a, b, c] for a, b, c in zip(*[iter(f)])]
        
        return val
    else:
        return [[None, None, None]] * 1440
На выходе получил:
[[55, 55, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [58, 58, 0],...[92, 92, 0]...., [0, 0, 0]]
Все хорошо, значения пульса правильные, только как похитрее все это разобрать и отсеять лишнее, а также построить график, таблицу. Пожалуйста посоветуйте новичку.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.08.2020, 11:15
Ответы с готовыми решениями:

Работа с ZIP архивом. Библиотека Ionic.Zip
Здравствуйте . Помогите пожалуйста . 1. Вот я знаю путь до папки (Пример : c:\set\bin\) Как мне добавить в архив все файлы с этой...

Как вытащить закодированные данные из архиватора ZIP?
Всем добрый вечер) Мне для курсовой нужно считать закодированные данные из архиватора ZIP и работать с ними. Но я не знаю как это сделать и...

Как считать закодированные данные из архиватора ZIP?
Всем добрый вечер) Мне для курсовой нужно считать закодированные данные из архиватора ZIP и работать с ними. Но я не знаю как это сделать и...

13
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
29.08.2020, 11:23

Не по теме:

Цитата Сообщение от alexasuvorov Посмотреть сообщение
значения пульса правильные
Цитата Сообщение от alexasuvorov Посмотреть сообщение
[0, 0, 0], [0, 0, 0], [0, 0, 0]



alexasuvorov, не обращай внимания, навеяло чето...

Добавлено через 1 минуту
По теме:
alexasuvorov, а что именно тут "лишнее". По каким критериям отсеивать-то?
0
 Аватар для alexasuvorov
0 / 0 / 0
Регистрация: 01.07.2020
Сообщений: 7
29.08.2020, 11:29  [ТС]
лишнее здесь все кроме значений пульса которые дублируются [55, 55, 0].
Мне нужно оставить одно только одно значение из каждого вложенного списка. Вот.

Добавлено через 2 минуты
Чтобы было полное представление вот исходные данные до обработки:
2020-08-28 19:13:41 69|1.1.17i|I|fitness|[FitnessDataGetter] online model: key: watch_hrm_record time: 1598562000 tag: days values: {"raw_hrm":"NzcAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAOTkAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAQUEAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAPT0AAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAPDwAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAWloAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAOjoAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAOjoAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAANjYAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAOTkAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAPDwAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAANzcAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAANTUAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAZGQAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAASkoAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAamoAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAQkIAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAUlIAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAR0cAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAPj4AAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAWVkAAAAAAAAAAAAAAAAAAG17ewAA AAAAAAAAAAAAVlYAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAaGgAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABk ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAbW0AAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAZmYAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAA","sample_un it":60}
Вот что получил после:
[[55, 55, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [57, 57, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [65, 65, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [61, 61, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [60, 60, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [90, 90, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [58, 58, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [58, 58, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [54, 54, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [102, 102, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
29.08.2020, 11:30
alexasuvorov, т.е. удалить нули и дубликаты?
0
 Аватар для alexasuvorov
0 / 0 / 0
Регистрация: 01.07.2020
Сообщений: 7
29.08.2020, 11:31  [ТС]
Совершенно да!
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
29.08.2020, 11:49
alexasuvorov, ну если просто, то
Python
1
result = [el for item in lst for el in set(item) if el != 0]
Добавлено через 28 секунд
Где lst - твой список списков

Добавлено через 23 секунды
Результат -
Bash
1
[55, 57, 65, 61, 60, 90, 58, 58, 54, 102]
0
 Аватар для alexasuvorov
0 / 0 / 0
Регистрация: 01.07.2020
Сообщений: 7
29.08.2020, 11:53  [ТС]
iSmokeJC от души Благодарю. Результат просто класс!!!!

Добавлено через 1 минуту
Помогите еще понять выражение [[a, b, c] for a, b, c in zip(*[iter(f)] * 3)]
Благодарю.
0
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
29.08.2020, 12:10
Цитата Сообщение от alexasuvorov Посмотреть сообщение
Помогите еще понять выражение [[a, b, c] for a, b, c in zip(*[iter(f)] * 3)]
Так называемый "синтаксический сахар" или генератор списка с применением функции zip() и итератора iter(). Основной вопрос, что передается в функцию zip? Тогда смотри начальный код.
1
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
29.08.2020, 12:20
Лучший ответ Сообщение было отмечено alexasuvorov как решение

Решение

alexasuvorov, попробуй просто заменить в своем коде
Python
1
val = [i for a, b, c in zip(*[iter(f)] * 3) for i in {a, b, c} if i != 0]
1
 Аватар для alexasuvorov
0 / 0 / 0
Регистрация: 01.07.2020
Сообщений: 7
29.08.2020, 12:26  [ТС]
Передается вот такое b'77\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x0099\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00AA\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00==\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00<<\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00ZZ\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00::\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 ::\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x0066\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x0099\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00<<\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x0077\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x0055\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00dd\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00JJ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00jj\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00BB\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00RR\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00GG\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00>>\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00YY\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00m{{\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00VV\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00hh\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00dd\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00mm\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00ff\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00'

на выходе:
[[55, 55, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [57, 57, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [65, 65, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [61, 61, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [60, 60, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [90, 90, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [58, 58, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [58, 58, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [54, 54, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [57, 57, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [60, 60, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [55, 55, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [53, 53, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [100, 100, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [74, 74, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [106, 106, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [66, 66, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [82, 82, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [71, 71, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [62, 62, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [89, 89, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 109, 123], [123, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [86, 86, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [104, 104, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 100], [100, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [109, 109, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [102, 102, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
как связать эти данные для понимания.

Добавлено через 1 минуту
а результат всего как мне подсказал iSmokeJC после
Python
1
[el for item in extRaw for el in set(item) if el != 0]
[55, 57, 65, 61, 60, 90, 58, 58, 54, 57, 60, 55, 53, 100, 74, 106, 66, 82, 71, 62, 89, 123, 109, 123, 86, 104, 100, 100, 109, 102]
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
29.08.2020, 17:39
Без соблюдения изначального порядка:
Python
1
2
3
>>> set(filter(lambda x:x>0,sum(lst,[])))
{53, 54, 55, 57, 58, 60, 61, 62, 65, 66, 71, 74, 82, 86, 89, 90, 100, 102, 104, 106, 109, 123}
>>>
Что интересно, set сортирует числа по возрастанию.

Добавлено через 18 минут
Цитата Сообщение от alexasuvorov Посмотреть сообщение
zip(*[iter(f)] * 3)]
Вот что делает эта хитрая конструкция:
Python
1
2
3
>>> list(zip(*[iter([1,2,3,4,5,6,7,8,9])] * 3))
[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
>>>
То есть [iter([1,2,3,4,5,6,7,8,9])] * 3 это создание списка из трех объектов указывающих на один и тот же итератор списка. Звездочка это распаковка списка\последовательности на составляющие. zip это как бы параллельное итерирование по всем значениям последовательности. Итог - итерация по тройкам значений изначальной последовательности.
1
 Аватар для alexasuvorov
0 / 0 / 0
Регистрация: 01.07.2020
Сообщений: 7
29.08.2020, 19:42  [ТС]
Благодарю за разъяснение Garry Galler, мелочи отдельно проработаю.
Цитата Сообщение от Garry Galler Посмотреть сообщение
Вот что делает эта хитрая конструкция:
то что делает сия конструкция понятна, мне как-бы хотелось детально понять как она работает из нутри. Если разбирать по строкам то вот:
Python
1
f = base64.b64decode(value)
выход после этого:
Code
1
b'77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0099\x00\x00\x00\........x00\
вот эта строка влетает после дешифровки в "хитрую" конструкцию и получается то что я добивался очень долго. Дело в том что на разных ресурсах я пытался расшифровать base64 кодировку и врезультате получался какой-то бред вместо значений искомых, как пример вышеуказанная строка
Code
1
"NzcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOTkAAAAA AAAAAAAAAAAAA..."
после дешифровки получалось
Code
1
"7799AA==<<ZZ::::6699<<7755ddJJjjBBRRGG>>YYm{{VVhhddmmff"
и никаких намеков на данные пульса, а оказывается нужно было еще прогнать через "хитрую" конструкцию.
Сегодня друзья чудесный день разрешилась большая проблема!!!!!!
Благодарю ВСЕХ кто помог и научил!
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
29.08.2020, 20:26
Цитата Сообщение от alexasuvorov Посмотреть сообщение
выход после этого:
Ну это просто байтовая строка. То есть по сути последовательность байтов как есть.
Чтобы извлечь оттуда полезны данные - нужно знать формат их упаковки.
В вашем случае распаковка сделана через извлечение троек байт. То что байты неявно преобразовались в числа тут, конечно, не совсем ожидаемо, но Python в некоторых случаях так делает автоматически (например, преобразуя литералы в числа или юникодные строки
Python
1
2
3
4
5
>>> 0xffff
65535
>>> "\u0100"
'Ā'
>>>
) поэтому особо никакой магии нет.

Кстати, можно попробовать все распаковать через struct.unpack.

Добавлено через 10 минут
Кстати, если скормить такую байтовую строку специальной функции bytearray, то получим чиселки:
Python
1
2
3
4
5
6
7
8
>>> arr =bytearray(f)
>>> arr[0]
55
>>> arr[1]
55
>>> arr[2]
0
>>>
Хотя, зачем bytearray - просто list:
Python
1
2
>>> list(b)
[55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 65,....
1
 Аватар для alexasuvorov
0 / 0 / 0
Регистрация: 01.07.2020
Сообщений: 7
29.08.2020, 20:37  [ТС]
Цитата Сообщение от Garry Galler Посмотреть сообщение
Кстати, можно попробовать все распаковать через struct.unpack.
Я отработаю эту тему.
А так результат есть дальше буду выводить в график данные пульса и режима сна. У меня хобби изучать языки ООП не более.
Вот выдрал файл логов из Андроида от фитнес браслета и захотелось написать парсер на Python с выводом на график того что отображается на дисплее телефона пульса режима сна и т.д. Вопрос стоял только с зашифрованными данными пульса

Добавлено через 4 минуты
Цитата Сообщение от Garry Galler Посмотреть сообщение
Кстати, если скормить такую байтовую строку специальной функции bytearray, то получим чиселки:
При оптимизации кода пригодиться обязательно отработаю сию функцию.
Благодарю за уделенное мне время.

Добавлено через 5 минут
Вопрос к Garry Galler, я понимаю Вы принимаете заказы по созданию сайта как с Вами связаться на эту тему?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.08.2020, 20:37
Помогаю со студенческими работами здесь

Как получить закодированные данные из архиватора ZIP?
Всем добрый вечер) Мне для курсовой нужно считать закодированные данные из архиватора ZIP и работать с ними. Но я не знаю как это сделать и...

Разобрать, как происходит работа с файлом
надо прокоментировать каждую часть просто я никак не нмогу понять что к чему конкретно case WM_CREATE: { std::ifstream...

Zip в zip. Как распаковать одним махом?
Я изучаю Zip бомбы. И я решил создать прямо атомную. Но вопрос в том, что мне надо распаковать зип сразу. Пример 1.zip&gt;2.zip&gt;3.zip......

Как передать значение функции zip в левую часть генератора списка?
, y&lt;- , zip x y] А как передать значение функции zip в левую часть генератора списка?

Работа с уравнениями: Как векторы структур разобрать в сами уравнения?
Есть кусок программы, которая принимает систему уравнений в виде: вектор уравнений, каждое уравнение – это вектор членов. Каждый член – это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru