我正在做一个小项目,我在其中使用python API从网站获取加密货币数据。当我这样做时,返回的对象类型是“ dict”类型,看起来像下面的链接。
https://api.cryptowat.ch/markets/gdax/btcusd/ohlc
现在我想将值传递到数组对象中,以便我可以使用它们进行计算,绘制等。
有人可以向我指出正确的方向吗?
目前我将其传递到CSV文件中,这对我而言似乎效率较低。
my_data = client.get_markets(data=data)
my_data = str(my_data)
# resultFyle = open(f"
{curr}_{exch}_{start_date}_{to_date}.csv",'w+',newline='')
# wr = csv.writer(resultFyle)
test_string = ''
test_string_1 = ''
for char in my_data:
if char == '[':
# wr.writerow([test_string])
print(test_string)
test_string = ''
elif char == ']':
char = ''
else:
test_string = test_string + char
答案 0 :(得分:0)
数组具有许多使用其他数据结构中的数据的方法。
有array.extend()
和array.fromlist()
。
根据我在数据中看到的内容,API响应是一个命令,但是该命令只是列表的集合,每个列表都是不同的蜡烛时间段。然后,OHLC数据点也是列表,并且NumPy的数组不支持嵌套。 您可以将一个(或每个)烛台转换成四个列表:一个用于打开,一个用于关闭,一个用于高,另一个用于低。这些列表的每个元素将与同一索引处的其他列表相对应。然后,您将转换为数组(如果确实需要)
import array as array_module
my_data = client.get_markets(data=data)
open = []
close = []
high = []
low = []
for candle in my_data["result"]["60"]:
open.append(candle[1])
high.append(candle[2])
low.append(candle[3])
close.append(candle[4])
sixty_minutes_open_array = array_module.array("f", open)
sixty_minutes_high_array = array_module.array("f", high)
sixty_minutes_low_array = array_module.array("f", low)
sixty_minutes_close_array = array_module.array("f", close)
但是您也可以使用python中的字典对值进行计算, 或者您可以在创建单独的列表之后,创建数组并在列表上进行计算之前停止。