StudentOIST
StudentOIST

Reputation: 189

saving dictionary into json python

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

Answers (3)

Vinayak Gadag
Vinayak Gadag

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

mdegis
mdegis

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

Adam Liu
Adam Liu

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

Related Questions