Доступ только к значениям и распоряжение ключами в объекте json с использованием Python - PullRequest
1 голос
/ 21 апреля 2020

В настоящее время я использую pymon go для запроса к базе данных, а я sh только для извлечения значений из запроса, поскольку их ключи не нужны и могут быть отброшены. Моя текущая структура после выполнения запроса выглядит следующим образом:

tr_data = 
   [[[{
       'ts': 0.0,
       'ph': 50.0, 
       'am': -64.103
      },
      { 
       'ts': 1605.0, 
       'ph': 79.4, 
       'am': -66.223
      },
      {'ts': 3292.0, 
       'ph': 109.3, 
       'am': -68.476
}]]]]

И я sh хочу в основном вырезать ключи и поместить значения в просто вложенный массив, заканчивающийся так:

[[860792.0, 323.6, -64.884],
[862105.0, 347.5, -69.711],
[864146.0, 24.3, -68.361],....

До сих пор я пробовал это решение, где <tr> - это список, полученный из моего запроса, но безрезультатно:

def tr_array():
    trace_array = [d['Trace'] for d in tr]
    tr_data = [item[1:3:5] for item in trace_array]
    a = np.array(tr_data)
    arr = a.astype(np.float)
    return arr

Я чувствую, что это что-то, что нужно сделать с помощью доступа к переменным в этих нескольких строках, но, как я уже говорил ранее, если я могу просто убрать ключи, это может быть намного быстрее, чем доступ к указанным c значениям. Любая помощь будет принята с благодарностью!

1 Ответ

1 голос
/ 21 апреля 2020

Попробуйте это:

tr_data = [[[{
       'ts': 0.0,
       'ph': 50.0,
       'am': -64.103
      },
      {
       'ts': 1605.0,
       'ph': 79.4,
       'am': -66.223
      },
      {'ts': 3292.0,
       'ph': 109.3,
       'am': -68.476
}]]]

output = [list(i.values()) for i in tr_data[0][0]]
print(output)
...