Initial commit: 微信联系人祝福管理系统
This commit is contained in:
98
init_db.py
Normal file
98
init_db.py
Normal file
@@ -0,0 +1,98 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
初始化SQLite数据库并导入联系人数据
|
||||
"""
|
||||
import sqlite3
|
||||
import json
|
||||
import os
|
||||
|
||||
# 数据库文件
|
||||
DB_PATH = r"D:\夏骥\微信研究\contacts.db"
|
||||
|
||||
# JSON数据文件
|
||||
JSON_PATH = r"D:\夏骥\微信研究\contacts_data.json"
|
||||
|
||||
|
||||
def init_database():
|
||||
"""初始化数据库"""
|
||||
# 删除旧数据库(如果存在)
|
||||
if os.path.exists(DB_PATH):
|
||||
os.remove(DB_PATH)
|
||||
|
||||
conn = sqlite3.connect(DB_PATH)
|
||||
cursor = conn.cursor()
|
||||
|
||||
# 创建联系人表
|
||||
cursor.execute('''
|
||||
CREATE TABLE contacts (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
name TEXT NOT NULL,
|
||||
category TEXT DEFAULT '',
|
||||
blessing TEXT DEFAULT '马年新春快乐!愿您在新的一年里,事业腾飞,马到成功!',
|
||||
selected INTEGER DEFAULT 0,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
)
|
||||
''')
|
||||
|
||||
conn.commit()
|
||||
return conn
|
||||
|
||||
|
||||
def import_from_json(conn):
|
||||
"""从JSON导入联系人"""
|
||||
cursor = conn.cursor()
|
||||
|
||||
# 读取JSON数据
|
||||
with open(JSON_PATH, 'r', encoding='utf-8') as f:
|
||||
contacts = json.load(f)
|
||||
|
||||
# 导入联系人
|
||||
for contact in contacts:
|
||||
cursor.execute('''
|
||||
INSERT INTO contacts (name, category, blessing, selected)
|
||||
VALUES (?, ?, ?, ?)
|
||||
''', (
|
||||
contact.get('name', ''),
|
||||
contact.get('category', ''),
|
||||
contact.get('blessing', '马年新春快乐!愿您在新的一年里,事业腾飞,马到成功!'),
|
||||
1 if contact.get('selected', False) else 0
|
||||
))
|
||||
|
||||
conn.commit()
|
||||
print(f"已导入 {len(contacts)} 个联系人到数据库")
|
||||
|
||||
|
||||
def main():
|
||||
print("=" * 50)
|
||||
print("初始化数据库")
|
||||
print("=" * 50)
|
||||
|
||||
# 初始化数据库
|
||||
conn = init_database()
|
||||
print("数据库表已创建")
|
||||
|
||||
# 导入数据
|
||||
if os.path.exists(JSON_PATH):
|
||||
import_from_json(conn)
|
||||
else:
|
||||
print(f"JSON文件不存在: {JSON_PATH}")
|
||||
|
||||
# 验证数据
|
||||
cursor = conn.cursor()
|
||||
cursor.execute("SELECT COUNT(*) FROM contacts")
|
||||
count = cursor.fetchone()[0]
|
||||
print(f"\n数据库中共有 {count} 个联系人")
|
||||
|
||||
# 显示示例数据
|
||||
cursor.execute("SELECT id, name, category, blessing, selected FROM contacts LIMIT 5")
|
||||
print("\n示例数据:")
|
||||
for row in cursor.fetchall():
|
||||
print(f" ID:{row[0]} 姓名:{row[1]} 分类:{row[2]} 祝福语:{row[3][:20]}...")
|
||||
|
||||
conn.close()
|
||||
print(f"\n数据库文件: {DB_PATH}")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Reference in New Issue
Block a user