Reputation: 3952
I have a json file
{"id": 103, "data": [{"point": [10, 20], "sp": 2}, {"point": [20, 20], "sp": 3}, {"point": [10, 20], "sp": 0}, {"point": [30, 20], "sp": 0}]}
I am trying to convert this json in to numPy array which has only col "sp"
I tried
numpy_2d_arrays = np.array( list(item.sp) for item in filejson["data"])
print(numpy_2d_arrays)
which return <generator object speedVariance.. at 0x11421dba0>
how can I read all "sp" data point in single array using numpy from json
Upvotes: 1
Views: 74
Reputation: 157
jsonData = {"id": 103, "data": [{"point": [10, 20], "sp": 2}, {"point": [20, 20], "sp": 3}, {"point": [10, 20], "sp": 0}, {"point": [30, 20], "sp": 0}]}
numpy_2d_arrays = np.array([item['sp'] for item in jsonData['data']])
print(numpy_2d_arrays)
Upvotes: 1
Reputation: 17368
In [5]: a
Out[5]:
{'id': 103,
'data': [{'point': [10, 20], 'sp': 2},
{'point': [20, 20], 'sp': 3},
{'point': [10, 20], 'sp': 0},
{'point': [30, 20], 'sp': 0}]}
In [10]: A = np.array([i["sp"] for i in a["data"]])
In [11]: A[A!=0]
Out[11]: array([2, 3])
OR
In [12]: np.array([i["sp"] for i in a["data"] if i["sp"]])
Out[12]: array([2, 3])
Upvotes: 2