【问题标题】:How do I save the dictionary with new name every time when my code runs?每次我的代码运行时,如何用新名称保存字典?
【发布时间】:2021-07-30 10:58:21
【问题描述】:

每当我的代码运行时,我都会尝试用新名称保存字典。

代码

   import json
   dictionary = {'happy':1,'sad':2,'angry':3}
   count = 0
   with open('/home/hamza/Desktop/time_duration_file'+str(count)+'.json','w') as data:
   file = json.dump(dictionary,data)
   count+=1

每当我的代码运行时,上面的代码都会覆盖字典。每当我的代码运行时,我都想每次用新名称保存字典。

预期输出:

Code Runs (1)
Code Runs (2)
     .
     .

输出应该是:

 time_duration_file1.json
 time_duration_file2.json
         .
         .

【问题讨论】:

    标签: python json dictionary


    【解决方案1】:

    您可以使用time 来执行此操作。试试这个:

    import json
    import time
    
    dictionary = {'happy':1,'sad':2,'angry':3}
    
    with open('/home/hamza/Desktop/time_duration_file'+str(time.time())+'.json','w') as data:
            file = json.dump(dictionary,data)
    
    

    【讨论】:

      【解决方案2】:

      好吧,您并没有做任何事情来实际计算已创建的文件数量;你只是将count 设置为零。

      试试类似的东西

      import glob
      
      count = len(glob.glob('/home/hamza/Desktop/time_duration_file*.json'))
      
      # ...
      

      【讨论】:

      • 请在嵌入您的特定行后将完整代码发送给我
      【解决方案3】:

      你可以试试这个:

      import random
      
      with open('/home/hamza/Desktop/time_duration_file'+str(random.randint(1, 10000))+'.json','w') as data:
          file = json.dump(dictionary,data)
      

      这将在您每次运行脚本时创建一个完全不同的文件名。

      如果你想连续保存,你可以试试这个:

      import os 
      
      with open('/home/hamza/Desktop/time_duration_file'+str(len(os.listdir("/home/hamza/Desktop")))+'.json','w') as data:
          file = json.dump(dictionary,data)
      

      【讨论】:

      • 这给出错误,没有这样的文件或目录 time_duration_file/2983.json
      • 你能解释一下哪个不工作吗?您面临的问题是什么?
      • @Rabi 在向助手大喊大叫之前,请提供完整的错误消息,您正在得到并要求提供帮助!
      【解决方案4】:

      您的问题是存储在count 中的值不会被保留。换句话说,每次你的代码运行时,count的值都会重置为0。正如Daniel所提到的,你可以通过计算目录中已经存在的json文件的数量然后添加一个来解决这个问题。

      这看起来像:

      import glob
      import json
      
      count = len(glob.glob('time_duration_file*.json'))
      dictionary = {'happy':1,'sad':2,'angry':3}
      with open('time_duration_file'+str(count+1)+'.json','w') as data:
         file = json.dump(dictionary,data)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-12
        • 2013-09-10
        • 2019-06-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多