我试图创建一个简单的函数,我可以用它将json数据存储到文件中。我目前有这个代码
def data_store(key_id, key_info):
try:
with open('data.txt', 'a') as f:
data = json.load(f)
data[key_id] = key_info
json.dump(data, f)
pass
except Exception:
print("Error in data store")
想法是加载文本文件中当前数据的内容,然后创建或编辑json数据。所以运行代码...
data_store("foo","bar")
然后该函数将读取文本文件中的内容,然后允许我附加json数据,并替换其中的内容(如果" foo"存在)或创建它如果它不存在
然而,这给我带来了错误,任何想法?
答案 0 :(得分:4)
a
模式不能同时用于读写。相反,use r+
:
with open('data.txt', 'r+') as f:
data = json.load(f)
data[key_id] = key_info
f.seek(0)
json.dump(data, f)
f.truncate()
seek(0)
call此处将光标移回文件的开头。 truncate()
有助于新文件内容少于旧文件的情况。
另外,请注意正确尝试avoid having a bare except clause或/和log the error and the traceback。