📜  Python数据持久性-简介(1)

📅  最后修改于: 2023-12-03 15:34:30.098000             🧑  作者: Mango

Python数据持久性-简介

Python是一种高级动态语言,常被用于数据处理、科学计算、Web开发等领域。在这些应用场景中,经常需要保存和恢复数据,以便断电或崩溃后可以重新开始操作。本文将介绍Python中数据持久性的几种方式。

JSON

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,可被多种编程语言支持。Python提供了json模块,可以将Python数据结构转换为JSON字符串,也可以将JSON字符串转换为Python数据结构,以达到数据持久性的目的。

import json

data = {"name": "Alice", "age": 25, "scores": [80, 90, 85]}
json_str = json.dumps(data)  # 将Python数据结构转换为JSON字符串
print(json_str)

data = json.loads(json_str)  # 将JSON字符串转换为Python数据结构
print(data)
CSV

CSV(Comma-Separated Values)是一种常用的文本格式,通常用于数据表格的存储和交换。Python提供了csv模块,可以读写CSV文件,以达到数据持久性的目的。

import csv

data = [["name", "age", "score"], ["Alice", 25, 80], ["Bob", 30, 90], ["Charlie", 35, 85]]
with open("data.csv", "w", newline="") as csvfile:
    writer = csv.writer(csvfile)
    for row in data:
        writer.writerow(row)  # 将数据写入CSV文件

with open("data.csv", newline="") as csvfile:
    reader = csv.reader(csvfile)
    for row in reader:
        print(row)  # 从CSV文件中读取数据
Pickle

Pickle是Python提供的一种序列化和反序列化数据的方式。使用pickle可以将Python对象转换为二进制数据,以便保存到文件或网络传输,并在需要时反序列化为Python对象。

import pickle

data = {"name": "Alice", "age": 25, "scores": [80, 90, 85]}
with open("data.pickle", "wb") as file:
    pickle.dump(data, file)  # 将Python对象序列化并保存到文件

with open("data.pickle", "rb") as file:
    data = pickle.load(file)  # 从文件中读取二进制数据并反序列化为Python对象
    print(data)
SQLite

SQLite是一种轻型的关系型数据库,使用简单、易于部署和维护,是Web应用和移动应用的理想选择。Python内置了sqlite3模块,可以通过Python代码对SQLite数据库进行增删改查操作,以达到数据持久性的目的。

import sqlite3

conn = sqlite3.connect("data.db")  # 创建SQLite数据库连接
cursor = conn.cursor()

cursor.execute("CREATE TABLE IF NOT EXISTS students (id INTEGER PRIMARY KEY, name TEXT, age INTEGER, score REAL)")
cursor.execute("INSERT INTO students (name, age, score) VALUES (?, ?, ?)", ("Alice", 25, 80))
cursor.execute("INSERT INTO students (name, age, score) VALUES (?, ?, ?)", ("Bob", 30, 90))
cursor.execute("INSERT INTO students (name, age, score) VALUES (?, ?, ?)", ("Charlie", 35, 85))
conn.commit()  # 提交事务

cursor.execute("SELECT * FROM students WHERE age >= ?", (30,))
results = cursor.fetchall()  # 查询数据
for result in results:
    print(result)

cursor.close()
conn.close()  # 关闭数据库连接

总之,Python提供了多种方式实现数据持久性,可以根据具体应用场景和需求选择合适的方式。