Python 附加一个json并读回

Python 附加一个json并读回,python,json,Python,Json,在事件中,我将事件附加到一个事件txt文件中,重要的是,我将其附加到文本文件中,并且在累积了10个事件后不将其保存在内存中,我需要将其发布到事件服务器 我的示例事件是: data = { 'node': os.popen('hostname').read(), 'details': details, 'time': calendar.timegm(time.gmtime()) } 我能够追加,因此作为 {

在事件中,我将事件附加到一个事件txt文件中,重要的是,我将其附加到文本文件中,并且在累积了10个事件后不将其保存在内存中,我需要将其发布到事件服务器 我的示例事件是:

data = {
            'node': os.popen('hostname').read(),
            'details': details,
            'time': calendar.timegm(time.gmtime())

    }
我能够追加,因此作为

{
    "node": "macbook.local\n", 
    "details": "Fire", 
    "time": 1443734264
}{
    "node": "macbook.local\n", 
    "details": "Fire", 
    "time": 1443734272
}
我无法读回它 尝试:

但也有例外

也许我需要把它当作一张清单,这是唯一的办法吗


-python新手

首先,在附加数据时,确保在数据末尾添加逗号:

{
    "node": "macbook.local\n", 
    "details": "Fire", 
    "time": 1443734264
},{
    "node": "macbook.local\n", 
    "details": "Fire", 
    "time": 1443734272
},
其次,当您重新格式化它时,只使用列表括号[],而不是字典括号{},如下所示:

    data = json.loads('[]'.format(json_source))

您的问题是没有将json格式化为正确的API。试试这个:

a='{"someid":{"node": "macbook.local","details": "Fire", "time": "1443734264"},"someid2":{"node": "macbook.local", "details": "Fire", "time": "1443734272"}}'
json.loads(a)
{'someid': {'details': 'Fire', 'node': 'macbook.local', 'time': '1443734264'}, 'someid2': {'details': 'Fire', 'node': 'macbook.local', 'time': '1443734272'}}

你能发布你看到的异常吗?我不能使用someid,因为脚本是随机调用的。我认为任何编写良好的json api都不应该给出这样的数据,它充满了样式错误。如果您不能更改它,那么我可能会使用正则表达式通过匹配括号来正确地设置它的样式。
a='{"someid":{"node": "macbook.local","details": "Fire", "time": "1443734264"},"someid2":{"node": "macbook.local", "details": "Fire", "time": "1443734272"}}'
json.loads(a)
{'someid': {'details': 'Fire', 'node': 'macbook.local', 'time': '1443734264'}, 'someid2': {'details': 'Fire', 'node': 'macbook.local', 'time': '1443734272'}}