С times
и amounts
, которые вы нам показываете, у меня нет проблем с dumps
:
In [140]: times
Out[140]: [1, 2, 3, 4]
In [141]: amounts
Out[141]: [12.34, 12.43, 87.65, 98.01]
In [142]: dd = dict(zip(times, amounts))
In [143]: dd
Out[143]: {1: 12.34, 2: 12.43, 3: 87.65, 4: 98.01}
In [144]: json.dumps(dd)
Out[144]: '{"1": 12.34, "2": 12.43, "3": 87.65, "4": 98.01}'
Но словарь печатается не так, как вы показываете. Чтобы получить это, я должен превратить amounts
в массив.
In [147]: arr = np.array(amounts,'float32')[:,None,None]
In [148]: arr.shape
Out[148]: (4, 1, 1)
In [149]: arr
Out[149]:
array([[[12.34]],
[[12.43]],
[[87.65]],
[[98.01]]], dtype=float32)
In [150]: dd = dict(zip(times, arr))
In [151]: print(dd)
{1: array([[12.34]], dtype=float32), 2: array([[12.43]], dtype=float32), 3: array([[87.65]], dtype=float32), 4: array([[98.01]], dtype=float32)}
Это не сериализуемо - нет ndarray
есть (без дополнительного кода)
In [152]: json.dumps(dd)
--------------------------------------------------------------------------
TypeError: Object of type 'ndarray' is not JSON serializable