TypeError: the JSON object must be str, not 'TextIOWrapper'

我用的是python3,我的加载代码是:

# 读取数据
        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 
    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)
就行了.

理由是load是从文件里面load,loads是从str里面load

参考文献

[1].Python - JSON Load from file not working.https://stackoverflow.com/questions/26072148/python-json-load-from-file-not-working


你可能感兴趣的:(python学习)