在python中附加带有json数据的文本文件

Posted

技术标签:

【中文标题】在python中附加带有json数据的文本文件【英文标题】:Append text file in python with json data 【发布时间】:2016-08-16 01:23:45 【问题描述】:

我正在尝试创建一个简单的函数,可用于将 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")

然后该函数将读取文本文件中的内容,然后允许我通过替换现有的内容(如果“foo”存在)或在不存在的情况下创建它来附加 json 数据

然而,这一直在向我抛出错误,有什么想法吗?

【问题讨论】:

您能否向我们提供您的data.txt 文件或至少其中的一些数据? 【参考方案1】:

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。

【讨论】:

以上是关于在python中附加带有json数据的文本文件的主要内容,如果未能解决你的问题,请参考以下文章

在Python中将文本附加到文件[重复]

Python:在 txt 文件中写入附加文本

在 Python 3.6 中解码来自 API 的文本响应

从文本文件中读取句子并使用 Python 3 附加到列表中 [关闭]

从 JSON 中删除附加文本

按钮单击时附加JSON值