使用json数据在python中附加文本文件

时间:2016-04-22 12:03:59

标签: python json

我试图创建一个简单的函数,我可以用它将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"存在)或创建它如果它不存在

然而,这给我带来了错误,任何想法?

1 个答案:

答案 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