仅在类中实现时才会出现JSON解码错误

时间:2018-02-21 06:37:49

标签: python-3.x

我使用本地JSON文件作为伪数据库,我正在编写一个连接类来与它进行交互。我收到了JSON解码错误:

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

尝试将文件读入变量时

我在db.py中有以下类:

import json

class DBconnect:
    def __init__(self, filename):
        self.dbfile = open(filename, 'r+')

    def __read(self):
        return json.load(self.dbfile) # line that stacktrace lands on

json文件中的数据:

{"key": {"1": {}}, "keyTwo": {"1": {}}}

我还创建了一个测试程序,它读取没有类的json文件,但我没有收到错误。它按照预期生成Python dict。

是否是导致此问题的类中的实现?

1 个答案:

答案 0 :(得分:0)

我发现了正在发生的事情。我在错误发生之前在另一个函数中调用__read(),因此文件位置在文件的末尾。我补充说:

self.dbfile.seek(0)
在返回语句之前

并修复了问题