Reputation: 189
I am quite new to python and I was trying to make two arrays or matrices, register them into a dictionary, save to a json file. Here is my code
import numpy as np
import json
array_1 = np.array([[1,2,3],[4,6,7]])
array_2 = np.array([[4,0],[9,8]])
json_data = {
'array_1': array_1,
'array_2': array_2,
}
import json
with open('json_data.json', 'wb') as fp:
json.dumps(json_data, fp)
But I get the following error:
Object of type 'ndarray' is not JSON serializable
Upvotes: 4
Views: 12722
Reputation: 1
First correct your data. Correct data: json_data = { 'array_1': array_1, 'array_2': array_2 }
There is a extra ',' at the end of the line (array_2). That is the reason you are getting JSON serialization issue.
Upvotes: 0
Reputation: 2438
First convert it to the python list like this:
json_data = {
'array_1': array_1.tolist(),
'array_2': array_2.tolist()
}
and then try to dump it as a json:
import json
with open('json_data.json', 'w') as fp:
json.dump(json_data, fp)
Upvotes: 7
Reputation: 1346
The best and easiest way of doing this is:
import json
with open("file.json", "wb") as f:
f.write(json.dumps(dict).encode("utf-8"))
Upvotes: 1