我有一个 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)
假设文件比较小,将其写出来,然后重命名该文件,这在几乎所有文件系统中都是原子的
with open(dest_temp, "w") as fh:
fh.write(content)
os.rename(dest_temp, dest_true)