Python получение указанных c цифр c значений из строки - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть строка, которая выглядит так (это просто пример, она имеет более 1k строк):

},
series: [{x:1585937577000,y:0.1000},{x:1585937757000,y:0.1000},{x:1585937937000,y:0.1000},{x:1585938117000,y:0.0800},{x:1585938297000,y:0.0800},{x:1585938478000,y:0.0600},{x:1585939739000,y:0.0200},{x:1585939919000,y:0.0200},{x:1585940099000,y:0.0000}],
                yAxis: 0,
                color: "rgba(80,180,50,1)",

Меня интересует только информация в словарях, я хочу получить список значений х и второй список значений у, только то, что остальное мусор. Просто значения без ключа. Я пробовал некоторые регулярные выражения, такие как:

x:(.*)\,
x:\.(.*?),
x:\.(.*?),y:

Однако это не работает, вероятно, потому что между ними нет пробелов. Меня смущают любые дальнейшие идеи, есть ли простой способ сделать это?

1 Ответ

0 голосов
/ 06 апреля 2020

Не совсем уверен, какова общая структура ваших данных, однако, если в вашем примере это список или диктант на форме, вы можете сделать буквальное вычисление с модулем ast и l oop over данные. Обратите внимание, что если это диктат, вам следует соответствующим образом изменить циклы.

import ast

d = "[{'series': [{'x':1585937577000,'y':0.1000},{'x':1585937757000,'y':0.1000}," \
    "{'x':1585937937000,'y':0.1000},{'x':1585938117000,'y':0.0800}," \
    "{'x':1585938297000,'y':0.0800},{'x':1585938478000,'y':0.0600}," \
    "{'x':1585939739000,'y':0.0200},{'x':1585939919000,'y':0.0200}," \
    "{'x':1585940099000,'y':0.0000}], 'yAxis': 0, 'color': 'rgba(80,180,50,1)'}]"

d = ast.literal_eval(d)

x = [x['x'] for val in d for x in val['series']]
y = [x['y'] for val in d for x in val['series']]

Вывод:

x = [1585937577000, 1585937757000, 1585937937000, 1585938117000, 1585938297000, 1585938478000, 1585939739000, 1585939919000, 1585940099000]
y = [0.1, 0.1, 0.1, 0.08, 0.08, 0.06, 0.02, 0.02, 0.0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...