[英]TinyDB insertion fails
我嘗試將Python對象的JSON序列化插入tinydb中 。 它工作一次,然后失敗。
from tinydb import TinyDB, Query
import json
class Test:
def __init__(self):
self.test = "a"
def to_JSON(self):
return json.dumps(self, default=lambda o: o.__dict__)
db = TinyDB("test.json")
print(Test().to_JSON)
db.insert(Test().to_JSON())
print("Second insert")
db.insert(Test().to_JSON())
導致
{"test": "a"}
Second insert
Traceback (most recent call last):
File "test.py", line 15, in <module>
db.insert(Test().to_JSON())
File "/usr/lib/python3.4/site-packages/tinydb/database.py", line 287, in insert
data = self._read()
File "/usr/lib/python3.4/site-packages/tinydb/database.py", line 248, in _read
return self._storage.read()
File "/usr/lib/python3.4/site-packages/tinydb/database.py", line 38, in read
data[eid] = Element(val, eid)
File "/usr/lib/python3.4/site-packages/tinydb/database.py", line 20, in __init__
self.update(value)
ValueError: dictionary update sequence element #0 has length 1; 2 is required
JSON本身對我來說非常有效,那么為什么tinydb不能再次插入?
我錯了。 當json.dumps()生成一個字符串時,insert()需要一個dict對象。
from tinydb import TinyDB, Query
import json
class Test:
def __init__(self):
self.test = "a"
def to_JSON(self):
return json.loads(json.dumps(self, default=lambda o: o.__dict__))
db = TinyDB("test.json")
db.insert(Test().to_JSON())
print("Second insert")
db.insert(Test().to_JSON())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.