python - 在多线程环境中将 JSON 转储到文件

标签 python json multithreading

我在多线程环境中使用以下代码:

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/

相关文章:

python - 如何在Python中化简分数?

php - android json 发布到 php

javascript - 表不接受 $.getJSON Javascript 中的任何类

jquery - json 具有自动完成功能?

C# 线程方法名称预期错误

java - Java中线程间的通信无锁

java - 超时队列会删除未检索到的对象

Python Pandas : Updating row based on value from another column

php - 将多行字符串的 PHP 正则表达式的意图转换为 Python/PERL

python - Selenium 只点击一次链接,再次调用 click() 返回错误