1. ホーム
  2. python

[解決済み] pythonでjsonオブジェクトを読み込む方法 [重複]。

2022-01-28 07:49:48

質問

私は "panamaleaks50k.json" という名前の json ファイルを持っています。私はjsonファイルから['text']フィールドを取得したいのですが、以下のエラーが表示されます。

JSONオブジェクトはstr、bytes、bytearrayのいずれかでなければならず、'TextIOWrapper'ではありません。

これは私のコードです

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

私のjsonファイルの外観

[
{
   "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"
 }
]

すべての['text']と単一の['text']フィールドを読むにはどうしたらいいですか?

どのように解決するのですか?

ファイルを渡す必要があります。 内容 (つまり文字列)を json.loads() であって、ファイルオブジェクトそのものではありません。これを試してみてください。

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

また json.load() 関数は、ファイルオブジェクトを受け取り、そのファイルに対して f.read() の部分は、ボンネットの下であなたに代わって行います。