一起读取和写入JSON文件时有时会出错

时间:2019-07-26 15:56:56

标签: python json

我有两个运行24/7的python脚本。

1。)脚本1(python 2.7)使用以下代码每1秒,24/7读取JSON文件:

obj_text = codecs.open("JSON/ID.json", 'r', encoding='utf-8').read()
target_id_dict = json.loads(obj_text)

2。)脚本2(Python 3)将JSON数据写入文件。它还运行24/7,但有时仅写入数据,例如使用以下代码每30分钟写入一次:

X = '{ "imgName":"'+file_dir+'", "catornot":"not cat"}'
y = json.loads(x)
with open('JSON/ID.json', 'w') as f:
    json.dump(y, f)

现在,有时我会收到此错误(通常在10到12个小时后)。

我在脚本一中遇到此错误。 enter image description here

我不确定,但是可能会发生,当脚本2写入数据,脚本1尝试读取数据时,在那个确切的时刻,我得到了错误。

1 个答案:

答案 0 :(得分:1)

只需使用tryexcept即可避免错误退出。 程序将在1秒后再次读取。因此,我认为不需要诸如线程安全之类的东西。

try:
    obj_text = codecs.open("JSON/ID.json", 'r', encoding='utf-8').read()
    target_id_dict = json.loads(obj_text)
except ValueError:
    pass