当前位置:
首页 > temp > python入门教程 >
-
Python工具箱系列(二十一)
准备数据
为了方便准备试验用的数据,建议使用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 = 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.cnblogs.com/shanxihualu/p/17030898.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数