Python写入JSON文件并追加数据

作者:半吊子全栈工匠2024.01.22 15:09浏览量:20

简介:在Python中,可以使用内置的json模块将数据写入JSON文件。如果想要追加数据而不是覆盖原有数据,可以将数据添加到一个列表中,然后将整个列表写入JSON文件。

在Python中,可以使用内置的json模块将数据写入JSON文件。如果想要追加数据而不是覆盖原有数据,可以将数据添加到一个列表中,然后将整个列表写入JSON文件。
下面是一个简单的示例代码,演示如何将数据追加到JSON文件中:

  1. import json
  2. # 打开JSON文件,读取原有数据
  3. with open('data.json', 'r') as f:
  4. data = json.load(f)
  5. # 添加新的数据到列表中
  6. data.append({'name': 'John', 'age': 30})
  7. # 将整个列表写入JSON文件
  8. with open('data.json', 'w') as f:
  9. json.dump(data, f)

在上面的代码中,首先打开名为data.json的JSON文件,并使用json.load()函数读取原有数据。然后,将新的数据添加到列表中。最后,使用json.dump()函数将整个列表写入JSON文件。注意,在写入文件时使用了’w’模式,这会将原有文件内容覆盖。如果想要追加数据而不是覆盖原有数据,可以将’w’模式改为’a’模式,这样就可以将新的数据添加到文件末尾而不会覆盖原有数据。例如:

  1. with open('data.json', 'a') as f:
  2. json.dump(data, f)

这样就可以将新的数据追加到JSON文件的末尾了。需要注意的是,如果原有文件中没有数据,使用’a’模式写入文件时需要在列表中添加一个空字典作为占位符,否则会出现语法错误。例如:

  1. import json
  2. # 打开JSON文件,读取原有数据(如果不存在则创建一个空字典)
  3. with open('data.json', 'r') as f:
  4. data = json.load(f) if f.read() else {}
  5. # 添加新的数据到列表中
  6. data['new_key'] = 'new_value'
  7. # 将整个字典写入JSON文件(如果原有文件中没有数据则创建一个新文件)
  8. with open('data.json', 'w') as f:
  9. json.dump(data, f)

在上面的代码中,如果原有文件中没有数据,则使用f.read()检查文件内容是否为空。如果为空,则创建一个空字典作为占位符。然后,将新的数据添加到字典中。最后,使用json.dump()函数将整个字典写入JSON文件。