Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
json.dump不';不要转储任何东西,留给我一个空文件| Python_Python_Json_File Writing_File Manipulation - Fatal编程技术网

json.dump不';不要转储任何东西,留给我一个空文件| Python

json.dump不';不要转储任何东西,留给我一个空文件| Python,python,json,file-writing,file-manipulation,Python,Json,File Writing,File Manipulation,我一直在尝试使用JSON库将字典转储到我的JSON文件中。但是,当我转储时,文件中没有显示任何内容。此外,当我读取文件时(使用open('file').read()),它会在那里显示数据!有人能帮我找到这个幻影数据吗 db={'aaaa':'bbbbbb'}#这只是为了测试,但实际db的形状将大致相同。 def write() while True: with open('C:\\Users\\very\\long\\path\\to\\json-file\\data.

我一直在尝试使用
JSON
库将字典转储到我的JSON文件中。但是,当我转储时,文件中没有显示任何内容。此外,当我读取文件时(使用
open('file').read()
),它会在那里显示数据!有人能帮我找到这个幻影数据吗

db={'aaaa':'bbbbbb'}#这只是为了测试,但实际db的形状将大致相同。


def write()
    while True:
        with open('C:\\Users\\very\\long\\path\\to\\json-file\\data.json', 'w') as f:
            
            json.dump(db, f)
            sleep(2)
            print('dumped')


Thread(target=write()).start()

其他信息:
环境:VSCode
Python版本:3.9.0
库:json(导入json)
调用:在线程内。
无错误。

正确的代码:

import json
from time import sleep
from threading import Thread
db = {'aaaa': 'bbbb'} 

def write():
    while True:
        with open('data2.json', 'w') as f:
            json.dump(db, f)
        print('dumped')
        sleep(10)


Thread(target=write()).start()

在您的情况下,数据被写入(刷新)到文件中,并立即重新打开文件进行写入。我已经将睡眠从“带”状态移到了“带”状态,现在它可以工作了

云你分享了完整的例子吗?另外,为什么路径中的“data.json”会重复两次?第二次只是为了阅读。那是为了调试。最重要的是第一个电话@user3431635@user3431635我编辑了这篇文章,所以所有的代码都是可见的。json.dump假定为dump对象,那么为什么要使用str(db)?那么db看起来怎么样?云你给出了我在第一次评论中问过的完整的例子吗?嗯,这个答案有什么问题吗?当然。对我来说效果很好。(你必须添加导入json,从时间导入睡眠,从线程导入线程,和db={'aaaa':'bbbb'}行,所以我将粘贴整个代码。请指出你方的sintax错误。