将Dict传递给数组python

时间:2018-08-03 05:04:00

标签: dictionary

我正在做一个小项目,我在其中使用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

1 个答案:

答案 0 :(得分:0)

python中的

数组具有许多使用其他数据结构中的数据的方法。 有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中的字典对值进行计算, 或者您可以在创建单独的列表之后,创建数组并在列表上进行计算之前停止。