Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 2, 2021 12:41:13

byteman
Зарегистрирован: 2021-11-02
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Как разобрать считанную строку на составляющие

Считываю строку и вижу её структуру. А как из этой строки получить, например, словарь?
Вообще то мне для работы пока нужны только цифры из “data” и ещё вопрос получения дата-время из первого числа в каждом из массивов “data”, но это решаемо.
Строка:

 [{"tickerId":913354090,
"dates":[{"type":"T","start":"09:31:00","end":"16:00:00","avgShow":0}],
"data":["1635739200,15541.26,15595.92,15598.95,15470.82,15498.39,842992158,null",
"1635480000,15323.29,15498.39,15504.12,15323.29,15448.12,797083427,null",
"1634616000,15073.13,15129.09,15137.85,15049.73,15021.81,669318318,null"],
"cleanTime":1635859800000,"cleanDuration":5}]

Отредактировано byteman (Ноя. 2, 2021 12:51:29)

Офлайн

#2 Ноя. 2, 2021 13:29:01

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1365
Репутация: +  120  -
Профиль   Отправить e-mail  

Как разобрать считанную строку на составляющие

byteman
Считываю строку и вижу её структуру.
считывайте с помощью библиотеки json,
что такое json читайте в интеренете

Офлайн

#3 Ноя. 2, 2021 22:36:12

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

Как разобрать считанную строку на составляющие

byteman
А как из этой строки получить, например, словарь?
Вообще то мне для работы пока нужны только цифры из “data”
  
>>> import json
>>> 
>>> text = """
... [{"tickerId":913354090,
... "dates":[{"type":"T","start":"09:31:00","end":"16:00:00","avgShow":0}],
... "data":["1635739200,15541.26,15595.92,15598.95,15470.82,15498.39,842992158,null",
... "1635480000,15323.29,15498.39,15504.12,15323.29,15448.12,797083427,null",
... "1634616000,15073.13,15129.09,15137.85,15049.73,15021.81,669318318,null"],
... "cleanTime":1635859800000,"cleanDuration":5}]
... """
>>> 
>>> data = json.loads(text)
>>> 
>>> out = data[0]['data']
>>> out
['1635739200,15541.26,15595.92,15598.95,15470.82,15498.39,842992158,null', '1635480000,15323.29,15498.39,15504.12,15323.29,15448.12,797083427,null', '1634616000,15073.13,15129.09,15137.85,15049.73,15021.81,669318318,null']
>>>

byteman
и ещё вопрос получения дата-время из первого числа в каждом из массивов “data”
  
>>> import datetime
>>> 
>>> def get_datetime(text):
...     unix_seconds = int(text.split(',', 1)[0])
...     datetime_data = datetime.datetime.fromtimestamp(unix_seconds)
...     out = '{:%d %B %Y %H:%M}'.format(datetime_data)
...     return out
... 
>>> text = '1635739200,15541.26,15595.92,15598.95,15470.82,15498.39,842992158,null'
>>> 
>>> out = get_datetime(text)
>>> out
'01 November 2021 15:00'
>>>



Онлайн

#4 Ноя. 4, 2021 11:03:53

byteman
Зарегистрирован: 2021-11-02
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Как разобрать считанную строку на составляющие

Спасибо за полные и точные ответы. Всё получилось отлично.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version