json.decoder.JSOnDecodeError:Expecting value:line 1 column 1(char 0)の解決


pythonを書くときの小さな間違いを覚えて、ずっとjsonを間違えています.decoder.JSOnDecodeError:Expecting value:line 1 column 1(char 0)を探して、1時間探してやっとホーンを発見しました.
エラーコード:
import json
f = open("C:\\...",'r')
if(len(f.read()) != 0):
    dic = json.loads(f.read)
else:
    dic = {
     }
f.close()

修正後:
import json
f = open("C:\\...",'r')
st = f.read()
if(len(st) != 0):
    dic = json.loads(st)
else:
    dic = {
     }
f.close()

read()操作するとカーソルが最後に移動し、read()を再度使用するとそのまま読み込めなくなります.カーソルを直接操作することもできますし、このように1回目の読み取り時に保存することもできます.