Найти - Пользователи
Полная версия: Как разобрать считанную строку на составляющие
Начало » Python для новичков » Как разобрать считанную строку на составляющие
1
byteman
Считываю строку и вижу её структуру. А как из этой строки получить, например, словарь?
Вообще то мне для работы пока нужны только цифры из “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}]
xam1816
byteman
Считываю строку и вижу её структуру.
считывайте с помощью библиотеки json,
что такое json читайте в интеренете
py.user.next
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'
>>>
byteman
Спасибо за полные и точные ответы. Всё получилось отлично.
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