1. ホーム
  2. python learning

TypeError: JSONオブジェクトは'TextIOWrapper'ではなく'str'である必要があります。

2022-02-18 10:44:25

python3を使っていて、ローディングのコードが

# Read the data
        with open('dict_author_id.json', 'r') as f:
            data = json.loads(f)
        print(data["R. Lauterbach"])





すると、エラーが報告され、エラーメッセージが表示されます。

Traceback (most recent call last):
  File "data_preprocessing.py", line 111, in <module>
    process()
  File "data_preprocessing.py", line 105, in process
    dp.load_json()
  File "data_preprocessing.py", line 41, in load_json
    data = json.loads(f)
  File "/usr/lib/python3.5/json/__init__.py", line 312, in loads
    s.__class__. __name__))
TypeError: the JSON object must be str, not 'TextIOWrapper'





そして、data = json.loads(f)を調べて、置き換えてください。

data = json.load(f)

以上です。

理由は、ロードはファイル内部からロードされ、ロードは内部から str

参考

[1].Python - ファイルからの JSON 読み込みが機能しない.https://stackoverflow.com/questions/26072148/python-json-load-from-file-not-working