準備資料
為了方便準備試驗用的資料,建議使用Faker這個庫來模擬,Faker是一個Python軟體包,可生成偽造資料,無論是需要引導資料庫,創建美觀的XML檔案,填充持久性以進行壓力測驗,還是匿名化來自生產服務的資料,Faker都能完美實作,
pip install faker
以下代碼生成姓名、性別這類最常用的試驗資料,
from faker import Faker def fakedata(maxtimes): fake = Faker('zh_CN') data_total = [[fake.name(), fake.company(), fake.phone_number(), fake.company_email(), fake.address(), fake.date_time(tzinfo=None)] for x in range(maxtimes)] print(data_total) return data_total fakedata(10)
由于每次fake時,資料都在變化,為了方便使用,可以將生成的資料保存在檔案中,檔案型別可以是:
◇txt檔案,雖然最簡單最自由,但要程式可行分析,不建議
◇excel檔案,在Windows環境下使用非常方便,但平臺兼容性差
◇csv檔案,兼容性強,跨平臺,決議方便,推薦
◇json檔案,兼容性強,跨平臺,決議方便,推薦
◇其它格式可以考慮yaml格式等
下面代碼演示了如何以csv格式保存生成的資料:
from faker import Faker import csv def fakedata(maxtimes): fake = Faker('zh_CN') data_total = [[fake.name(), fake.company(), fake.phone_number(), fake.company_email(), fake.address(), fake.date_time(tzinfo=None)] for x in range(maxtimes)] print(data_total) return data_total headerlist = ['name','company','phone','email','address','date'] with open('fake.csv','w',encoding='utf-8') as f: writer = csv.writer(f) # 寫頭部資訊 writer.writerow(headerlist) # 寫資料 data = https://www.cnblogs.com/shanxihualu/archive/2023/01/06/fakedata(100) writer.writerows(data)
以上代碼生成100條記錄,并且保存在fake.csv檔案備用,
創建資料庫并且插入記錄
sqlite是python3內置的標準庫,直接參考即可,不需要任何安裝,非常方便,
import sqlite3 import csv # 連接資料庫,如果沒有,則直接創建 conn = sqlite3.connect("demo.db") cur = conn.cursor() # 創建表 sqlstr = 'create table demo_table(name text,company text,phone text,email text,address text,date text)' cur.execute(sqlstr) # 不提交表格沒有真正創建 conn.commit() # 從檔案中讀出資料,并且依次寫入資料庫 with open('fake.csv', 'r', encoding='utf-8') as f: reader = csv.reader(f) # 讀頭部資訊 header = next(reader) print(header) # 開始遍歷 for row in reader: if row: insertsql = f"insert into demo_table (name,company,phone,email,address) values ('{row[0]}','{row[1]}','{row[2]}','{row[3]}','{row[4]}')" # 插入資料庫記錄 cur.execute(insertsql) # 一次性提交 cur.close() conn.commit() conn.close()
以上就將保存在fake.csv中的內容全部插入到了資料庫中,后續的CRUD操作都很類似,
sqlite還可以在記憶體中創建資料庫,只要輸入特殊引數值:memory:即可,該資料庫只存在于記憶體中,不會生成本地資料庫檔案,只要使用如下所示的特殊的關鍵定即可,
conn = sqlite3.connect(':memory:')
記憶體資料庫速度更快,可以在不產生檔案的情況下,實作臨時性的SQL運算,屬于一次性消費,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/541343.html
標籤:其他
下一篇:Java開發網路安全常見問題
