我在多线程环境中使用以下代码:
with open("UrlDict.json",'a') as f:
json.dump([text,href],f)
f.write('\n')
但是当一个线程正在向我想要的文件添加内容时,另一个线程执行了 f.write('\n') 方法并且它把事情搞砸了。有没有办法在 json 中转储项目后插入换行符(我希望每个项目占用一行)。
最佳答案
您正在创建的是一个 JSON lines文件。
使 write
成为原子操作。调用json.dumps
,将转储的数据作为字符串,与\n
一起写入文件。
j = json.dumps([text, href])
f.write(j + '\n')
关于python - 在多线程环境中将 JSON 转储到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48143199/