我有两个运行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个小时后)。
我不确定,但是可能会发生,当脚本2写入数据,脚本1尝试读取数据时,在那个确切的时刻,我得到了错误。
答案 0 :(得分:1)
只需使用try
和except
即可避免错误退出。
程序将在1秒后再次读取。因此,我认为不需要诸如线程安全之类的东西。
try:
obj_text = codecs.open("JSON/ID.json", 'r', encoding='utf-8').read()
target_id_dict = json.loads(obj_text)
except ValueError:
pass