我试图从这样的服务器读取数据:
with requests.Session() as s:
data = {}
r = s.get('https://something.com' , json = data ).json()
training_set1 = np.empty([-1,4])
training_set1[:,0] = r["o"]
training_set1[:,1] = r["h"]
training_set1[:,2] = r["l"]
training_set1[:,3] = r["c"]
但是我不知道数组的长度,所以我使用了-1
并得到了以下错误消息:
ValueError:不允许使用负尺寸
如何解决此代码?响应r
是一个JSON对象:
{"t":[1322352000,1322438400],
"o":[123,123],
"h":[123,123],
"l":[123,123],
"c":[123,123]}
我正在尝试将其重新排列为一个numpy数组。
答案 0 :(得分:1)
Numpy数组的大小固定。您不能初始化动态大小的数组。您可以使用列表列表,然后将列表转换为numpy数组。
在r["x"]
是列表的情况下,类似的事情应该起作用。 (未经测试的代码)
with requests.Session() as s:
data = {}
r = s.get('https://something.com' , json = data ).json()
t_set1 = []
t_set1.append(r["o"])
t_set1.append(r["h"])
t_set1.append(r["l"])
t_set1.append(r["c"])
training_set1 = np.array(t_set1)
编辑:在OP编辑问题后,针对订单"o","h","l",""c
进行了编辑
答案 1 :(得分:1)
您不能声明具有未知维的numpy数组。但是您可以在一个操作中声明它:
training_set1 = np.array([r["o"], r["o"], r["h"], r["l"]])
甚至更好:
training_set1 = np.array([r[i] for i in "oohl"])