我是一个由多个并发运行的简单应用程序组成的python。在同一个数据库中查找同一数据的两个脚本。由于设计决策,我正在生成部分数据。这些数据不保存在数据库中,而是保存在json文件中。在解析器中,我将数据保存如下:with open('a-1-test.json', 'w') as outfile:
json.dump(lookup_table, outfile)
outfile.close()
解析器在循环中运行,直到满足某个条件。同时,其他脚本引用查找脚本从数据库中获取数据(解析器保存的数据)。当其他脚本调用查找脚本时,他首先需要检查json文件中的查找表,以确定他必须获取哪些数据。在
^{pr2}$
这可能会工作一段时间,但我得到两种类型的错误:JSON document not found和ValueError:Unterminated string起始于(…)。
我猜这是因为当两个不同的脚本试图访问同一个文件时,没有设置任何并发度量。我知道发生第一个错误是因为我在解析器中使用了'w',其中一个现有的文件将被删除并创建一个新的文件,因此在此期间,查找脚本将无法看到该文件。在
我想知道python中最好的方法是什么?有没有任何方法可以在写入文件时对其加锁,在完成时解除锁定,以便查找脚本可以读取它?在
提前谢谢你