how to read json object in python

PythonJsonFilereader

Python Problem Overview


i have json file named "panamaleaks50k.json" . I want to get ['text'] field from json file but it shows me following error

> the JSON object must be str, bytes or bytearray, not 'TextIOWrapper'

this is my code

with open('C:/Users/bilal butt/Desktop/PanamalEakJson.json','r') as lst:
    b = json.loads(lst)
    print(b['text'])

my json file look

[{   "fullname": "Mohammad Fayyaz",   "id": "885800668862263296",   "likes": "0",   "replies": "0",   "retweets": "0",   "text": "Love of NS has been shown in PanamaLeaks scandal verified by JIT...",   "timestamp": "2017-07-14T09:58:31",   "url": "/mohammadfayyaz/status/885800668862263296",   "user": "mohammadfayyaz" },{  "fullname": "TeamPakistanPTI \u00ae",  "id": "885800910357749761",  "likes": "0",  "replies": "0",  "retweets": "0",  "text": "RT ArsalanISF: #PanamaLeaks is just a start. U won't believe whr...",  "timestamp": "2017-07-14T09:59:29",  "url": "/PtiTeampakistan/status/885800910357749761",  "user": "PtiTeampakistan" }]

how i can read all ['text'] and just single ['text'] field?

Python Solutions


Solution 1 - Python

You should pass the file contents (i.e. a string) to json.loads(), not the file object itself. Try this:

with open(file_path) as f:
    data = json.loads(f.read())
    print(data[0]['text'])

There's also the json.load() function which accepts a file object and does the f.read() part for you under the hood.

Solution 2 - Python

Use json.load(), not json.loads(), if your input is a file-like object (such as a TextIOWrapper).

Given the following complete reproducer:

import json, tempfile
with tempfile.NamedTemporaryFile() as f:
    f.write(b'{"text": "success"}'); f.flush()
    with open(f.name,'r') as lst:
        b = json.load(lst)
        print(b['text'])

...the output is success.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionBilal ButtView Question on Stackoverflow
Solution 1 - PythonEugene YarmashView Answer on Stackoverflow
Solution 2 - PythonCharles DuffyView Answer on Stackoverflow