如何从python创建(构造)json文件

时间:2019-04-08 16:32:46

标签: python json

我正在尝试从python 3.6创建(不进行修改,该文件尚不存在)一个json文件,并给一个特定的名称,我已经读过使用open(file,“ a”),如果该文件不存在,该方法将创建它。下面的方法可以正常运行,但是不会创建文件,有关如何解决此问题的任何想法。

我尝试了以下方法:

def create_file(self):
        import os
        monthly_name = datetime.now().strftime('%m/%Y')
        file=monthly_name + ".json"
        file_path = os.path.join(os.getcwd(), file)
        if not os.path.exists(file_path) or new_file:
            print("Creating file...")
            try:
                open(file, "a")
            except Exception as e:
                print (e)
        else:
            pass

1 个答案:

答案 0 :(得分:1)

您在这里不需要a(附加)模式。

此外,由于不好的做法是仅捕获异常并打印并继续,所以我也略去了这一点。

相反,如果函数 要覆盖现有文件,则会引发异常。

由于日期格式%Y/%m创建了一个子目录,例如路径最终将成为

  

something / 2019 / 04.json

您需要确保它们之间的目录存在。 os.makedirs做到了。

import os
import json

# ...


def create_file(self):
    monthly_name = datetime.now().strftime("%Y/%m")
    file_path = monthly_name + ".json"
    file_dir = os.path.dirname(file_path)  # Get the directory name from the full filepath
    os.makedirs(file_dir, exist_ok=True)
    if os.path.exists(file_path):
        raise RuntimeError("file exists, not overwriting")
    with open(file_path, "w") as fp:
        json.dump({"my": "data"}, fp)