读/写JSON会增加一个多余的花括号}

2024-06-14 23:14:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python编写一个程序,其中一个JSON本地文件需要用数据库中最后一个处理过的项进行更新,以便该过程从那时开始再次启动。 我在代码中遇到的问题是,有时,它会在代码末尾添加一个额外的花括号“}”,从而导致JSON无效。然后,这会中断计划的进程,直到更新JSON文件。你知道吗

我知道我可以先将文件读入对象,然后关闭文件,然后再打开文件写入对象,但就我个人而言,由于代码一直被写入对象,所以代码不会像以前那样干净,这样就不会丢失对最后处理项的跟踪。你知道吗

with open(_SETTINGS, 'r+') as settings:
    _last_processed = log['@timestamp']
    settings_data[env]['last_processed'] = _last_processed
    settings.seek(0)
    # settings.truncate()
    json.dumps(settings_data, settings, indent=2)

JSON文件\u SETTINGS如下所示:

{
  "UAT": {
    "last_processed": "2019-10-10T00:00:00.0000Z"
  },
  "DEV": {
    "last_processed": "2019-10-10T00:00:00.0000Z"
  }
}

令人恼火的是,只有有时返回的是上面的JSON,但有一个额外的右括号“}”,如下所示。你知道吗

{
  "UAT": {
    "last_processed": "2019-10-10T00:00:00.0000Z"
  },
  "DEV": {
    "last_processed": "2019-10-10T00:00:00.0000Z"
  }
}}

有人能解释一下吗?你知道吗


Tags: 文件对象代码dev程序数据库jsondata