如何动态保存数据到类似于CSV容错的JSON文件?

问题描述 投票:0回答:1

我有一个 Python 脚本,可以将数据动态保存到 CSV 文件,同时确保容错。但是,我想使用 JSON 文件实现相同的行为。具体来说,我想复制数据动态保存到文件的容错行为。即使脚本遇到错误或停止执行,已经成功写入的数据也应该被保留。

这是 CSV 代码片段,演示了我想要复制的行为:

import csv

employee_data = [
    {'Name': 'John Smith', 'Department': 'Sales', 'Position': 'Manager', 'Salary': '$60,000'},
    {'Name': 'Emily Johnson', 'Department': 'Marketing', 'Position': 'Coordinator', 'Salary': '$45,000'},
    {'Name': 'Michael Lee', 'Department': 'IT', 'Position': 'Developer', 'Salary': '$55,000'},
    {'Name': 'Sarah Brown', 'Department': 'HR', 'Position': 'Recruiter', 'Salary': '$50,000'},
    {'Name': 'David Clark', 'Department': 'Finance', 'Position': 'Accountant', 'Salary': '$52,000'}
]

with open('sample-data.csv', 'a+', newline='', encoding='utf-8') as csv_file:
    fieldnames = ['Name', 'Department', 'Position', '', 'Salary']
    csv_writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
    csv_writer.writeheader()

    for each in employee_data:
        csv_writer.writerow(each)
python json csv
1个回答
0
投票

假设文件比较小,将其写出来,然后重命名该文件,这在几乎所有文件系统中都是原子的

with open(dest_temp, "w") as fh:
    fh.write(content)

os.rename(dest_temp, dest_true)
© www.soinside.com 2019 - 2024. All rights reserved.