0

I want to read multiple JSON objects from a single file imported from local dir. So far this is my simple work:

Data:

[{
    "uuid": "6f476e26",
    "created": "2018-09-26T06:57:04.142232",
    "creator": "admin"

}, {
    "uuid": "11d1e78a",
    "created": "2019-09-21T11:19:39.845876",
    "creator": "admin"
}]

Code:

import json
with open('/home/data.json') as f:
    for line in f:
        data = json.load(f)

Error:

 File "/usr/lib64/python3.8/json/decoder.py", line 340, in decode
    raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 1 column 8 (char 7)

My question is similar to Loading and parsing a JSON file with multiple JSON objects and I've tried it however same issue appears. What should I do to solve this issue?

1 Answer 1

1
for line in f:
    data = json.load(f)

This makes no sense. You are trying to parse the file over and over again, as many times as the number of lines in the file. This is more problematic than it sounds since f is exhausted after the first call to json.load(f).

You don't need the loop, just pass f to json.load:

with open('/home/data.json') as f:
    data = json.load(f)
print(data)

outputs

 [{'uuid': '6f476e26', 'created': '2018-09-26T06:57:04.142232', 'creator': 'admin'},
  {'uuid': '11d1e78a', 'created': '2019-09-21T11:19:39.845876', 'creator': 'admin'}]

Now you can loop over data or directly access a specific index, ie data[0] or data[1].

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.