如何解决有没有办法增加 tinydb JSON 限制?
我有一个 tinydb json 文件,但我注意到在某个时候它拒绝将更多项目写入 json 文件并在解析时抛出错误,因为它在写入项目的过程中中断
这是回溯。它显示json解析器解析失败,因为作者在项目中间切断了写入
Traceback (most recent call last):
File "C:\Program Files (x86)\python38-32\lib\threading.py",line 932,in _bootstrap_inner
self.run()
File "main.py",line 79,in run
message.process()
File "C:\Users\Administrator\Downloads\dbtest\Login_Message.py",line 45,in process
DataBase.loadAccount(self)
File "C:\Users\Administrator\Downloads\dbtest\DataBase.py",line 9,in loadAccount
user_data = db.search(query.token == str(user.token))
File "C:\Program Files (x86)\python38-32\lib\site-packages\tinydb\table.py",line 234,in search
docs = [doc for doc in self if cond(doc)]
File "C:\Program Files (x86)\python38-32\lib\site-packages\tinydb\table.py",in <listcomp>
docs = [doc for doc in self if cond(doc)]
File "C:\Program Files (x86)\python38-32\lib\site-packages\tinydb\table.py",line 588,in __iter__
for doc_id,doc in self._read_table().items():
File "C:\Program Files (x86)\python38-32\lib\site-packages\tinydb\table.py",line 638,in _read_table
tables = self._storage.read()
File "C:\Program Files (x86)\python38-32\lib\site-packages\tinydb\storages.py",line 125,in read
return json.load(self._handle)
File "C:\Program Files (x86)\python38-32\lib\json\__init__.py",line 293,in load
return loads(fp.read(),File "C:\Program Files (x86)\python38-32\lib\json\__init__.py",line 357,in loads
return _default_decoder.decode(s)
File "C:\Program Files (x86)\python38-32\lib\json\decoder.py",line 337,in decode
obj,end = self.raw_decode(s,idx=_w(s,0).end())
File "C:\Program Files (x86)\python38-32\lib\json\decoder.py",line 355,in raw_decode
raise JSONDecodeError("Expecting value",s,err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 234357 (char 234356)
解决方法
发生这种情况的原因是多个线程同时写入 db 文件,所以我最终手动写入多个文件:每个条目一个
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。