(Python / JSON / MySQL) Рекомендации по финансовым данным в JSON, которые не будут переданы в БД - PullRequest
0 голосов
/ 29 июня 2018

У меня есть файл JSON с необработанными финансовыми данными, включая OHLC, объем, сделки и т. Д. Все данные, кроме OHLC, будут правильно перенесены в базу данных MySQL, которую я настроил. Данные OHLC только в виде нулей после передачи в базу данных. Необработанные данные JSON выглядят так:

[[1512086400000, "0,00001204", "0,00001209", "0,00001161", "0,00001183", "771721.00000000", 1512086699999, "9.10638040", 126, "359700.00000000", "4.22792312", "5251620667", 152516867, 15671667). , «0,00001189», «0,00001194», «0,00001183», «0,00001189», «119120.00000000», 1512086999999, «1.41575664», 44, «49016.00000000», «0.58377518», «52659721.84287900»], [15120870000000000000000000000000000 0,00001196 "," 0,00001183 ", [1512087600000," 0,00001187 "," 0,00001190 "," 0,00001171 "," 0,00001174 "," 312477.00000000 ", 1512087899999," 3,69618651 ", 63," 155121,00000000 "," 1,88411881 "," 1,8841188 ") ,……

Если первое значение - это время, следующие четыре значения в кавычках - это данные OHLC, а следующее значение в кавычках - это объем. Первоначально я подозревал, что котировки по какой-то причине препятствовали передаче, хотя, как ни странно, объем также указан в кавычках и переносится в мою базу данных без проблем.

Я подумал о том, чтобы перебрать файл и скопировать его в другой файл json, взяв кавычки. Однако я не уверен, что усилия будут успешными, поэтому я хочу посмотреть, каков будет совет тех, кто может знать лучше.

1 Ответ

0 голосов
/ 29 июня 2018

Что ж, похоже, это список списка, поэтому вы можете преобразовать строковые значения в десятичные значения, используя numpy, как показано ниже:

a=[[1512086400000, "0.00001204", "0.00001209", "0.00001161", "0.00001183", "771721.00000000", 1512086699999, "9.10638040", 126, "359700.00000000", "4.22792312", "52516956.22676400"],
   [1512086700000, "0.00001189", "0.00001194", "0.00001183", "0.00001189", "119120.00000000", 1512086999999, "1.41575664", 44, "49016.00000000", "0.58377518", "52659721.84287900"]]

Преобразование этого списка в массив numpy:

import numpy as np
a=np.array(a)
a.astype(np.float)
print(a)

Выход:

[[1.51208640e+12 1.20400000e-05 1.20900000e-05 1.16100000e-05
  1.18300000e-05 7.71721000e+05 1.51208670e+12 9.10638040e+00
  1.26000000e+02 3.59700000e+05 4.22792312e+00 5.25169562e+07]
 [1.51208670e+12 1.18900000e-05 1.19400000e-05 1.18300000e-05
  1.18900000e-05 1.19120000e+05 1.51208700e+12 1.41575664e+00
  4.40000000e+01 4.90160000e+04 5.83775180e-01 5.26597218e+07]]
...