python 05-标准库:csv、json、sqlite3、datetime模块

news/2024/11/18 2:29:42/文章来源:https://www.cnblogs.com/kakafa/p/18374864


csv模块



import csv# data.csv不存在时,会现在当前目录下创建一个data.csv文件
with open("data.csv", "w", encoding='utf-8') as file:writer = csv.writer(file)writer.writerow(["trasanction_id", "product_id", "price_id"])writer.writerow([1000, 1, 50])writer.writerow([1001, 5, 153])writer.writerow([1002, 16, 210])with open("data.csv") as file:reader = csv.reader(file)print(list(reader))





json模块


json.dumps():可以将一个Python对象(‌如字典、‌列表、‌字符串、‌数字等)‌作为参数传递给该函数,‌它一个JSON格式的字符串。‌


import json
from pathlib import Path# 创建一个Python字典
data = {'name': 'John Doe','age': 30,'is_student': False,'courses': ['Math', 'Science']
}# 将字典转换为JSON格式的字符串
json_str = json.dumps(data)# 打印JSON字符串
print(json_str)# 在当前目录创建一个json文件,把json_str写到该文件中
Path("data.json").write_text(json_str, encoding='utf-8')# 读json文件
data_read = Path("data.json").read_text(encoding='utf-8')
print(data_read)
print(type(data_read))  # Path.read_text()返回的是一个str对象data_dict = json.loads(data_read)  # 返回一个 字典对象 或者 字典array
print(type(data_dict))  # <class 'dict'>
print(data_dict)



sqlite3模块


  • sqlite3 模块是 Python 标准库的一部分,‌它提供了一个接口,‌允许 Python 程序与 SQLite 数据库进行交互。‌

  • SQLite是轻量级的嵌入式数据库,‌无需独立服务器进程(不用独占服务器的资源),‌适合单用户或低并发场景;‌

  • SQLite功能相对简单,‌不支持存储过程、‌触发器等高级特性,‌数据安全性较低;‌

  • SQLite适用于嵌入式设备、‌移动应用和轻量级桌面应用


  • DB Browser for SQLite 是一款开源的图形界面数据库管理工具

  • DB Browser SQLite内置了SQLite,故只需要安装DB Browser SQLite详见:https://www.cnblogs.com/kakafa/p/18374746



新建一个json文件:

import sqlite3
import json
from pathlib import Path# 返回一个数据类型为字典的array
stus = json.loads(Path("student.json").read_text(encoding='utf-8'))
print(stus)# 如果db.sqlite3文件不存在 会自动创建
with sqlite3.connect("db.sqlite3") as conn:  # 会返回一个Connection对象command = "INSERT INTO Students VALUES(?,?,?)"  # Students表需要提前建立好(创建表后记得保存),否则报错for stu in stus:conn.execute(command, tuple(stu.values()))conn.commit()



# 查找
with sqlite3.connect("db.sqlite3") as conn:command = "SELECT * FROM Students"cursor = conn.execute(command)for row in cursor:print(row)# conn.commit() 读数据时不需要提交,涉及到写修改才需要提交

还可以转换成元组输出:

with sqlite3.connect("db.sqlite3") as conn:command = "SELECT * FROM Students"cursor = conn.execute(command)tuple_stu = cursor.fetchall()print(tuple_stu)




datetime模块


from datetime import datetime
import timedt = datetime(2020, 1, 1)
print(dt)current_dt = datetime.now()
print(current_dt)# strptime()用于将字符串形式的日期和时间解析‌为datetime对象
time_s = datetime.strptime("1980/01/20", "%Y/%m/%d")  # 注意 大小写不一样 格式也不一样
print(time_s)# 把timestamp会转换成datetime的形式
time_d = datetime.fromtimestamp(time.time())
print(time_d)



from datetime import datetime, timedelta
import timedt1 = datetime(2020, 1, 1)
dt2 = datetime.now()  # 2024-08-22duration = dt2-dt1
print(duration)  # 1695 days, 22:08:38.756208
print(duration.days)  # 1695
print(duration.seconds)  # 79718# timedelta
dt3 = datetime(2020, 1, 1)+timedelta(days=1, seconds=20)  # 增加1天20秒
print(dt3) # 2020-01-02 00:00:20





本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/785629.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

初识方法

1.方法是什么 1.java方法是语句的合集,放在一起执行一个功能。 2.方法包含于类或对象中 3.方法在程序中被创建,在其他地方被引用 2.方法的原则:原子性 一个方法只能完成一个功能 3.在main方法外计算 1.先在main外面书写一个加法方法2.再在main里面直接输出加法方法总览:

Terraform - 初解Terraform - 简介

前言 云计算 主要提供计算服务,例如服务器、存储、数据库、网络等等; 对于云服务,通常只需使用多少支付多少,从而帮助降低运营成本,使基础设施更有效地运行,并能根据业务需求的变化调整对服务的使用。公有云: 多租户面向个人或企业由第三方云服务商托管和运营。 私有云: …

045、Vue3+TypeScript基础,pinia库中使用$subscribe订阅数据变动

01、main.js代码如下:// 引入createApp用于创建Vue实例 import {createApp} from vue // 引入App.vue根组件 import App from ./App.vue//第一步:引入pinia import {createPinia} from piniaconst app = createApp(App);//第二步:创建pinia实例 const pinia = createPinia()…

爬虫案例1-爬取图片的三种方式之一:DrissionPage篇(3)

继requests篇和selenium篇,本文是爬取图片的最后一个案例,利用了python第三方库DrissionPage来自动化爬取图片。当然,爬取图片肯定不止这三种方法,还有基于python的scrapy框架,基于node.js的express框架以及基于Java的webmagic框架等等。 DrissionPage和selenium相似,都是…

HtmlUnit:自动化操作web页面的java工具

java有httpclient等工具,可以模拟进行一些web操作,但一些逻辑是在前端js中执行的,此时httpclient就比较困难了。 此时可以考虑使用HtmlUnit,模拟出一个浏览器,全程在浏览器中操作。本文以 在百度中输入搜索关键字->点击“百度一下” 按钮->打印搜索结果 这一过程为例…

nginx代理服务

Nginx****代理服务代理区别 区别在于代理的对象不⼀样 正向代理代理的对象是客户端 反向代理代理的对象是服务端 2.Nginx****负载均衡2.2Nginx****负载均衡状态配置 backup max_conns 测试 backup 以及 down 状态 当⼀个后端服务器被标记为 backup 时,它将仅作为备⽤服务器使⽤…

声音克隆GPT-SoVITS 2.0软件和详细的使用教程!

天命人,请允许我先蹭个热点! 原始声音: 播放 克隆声音: 播放 文章写了一半,被《黑神话悟空》刷屏了。突发奇想,用里面的声音来做个素材试试看。B站捞了一点声音素材,随便剪一剪,训练一把过,没有调优,就直接拿来用了。情绪还差点意思,音色克隆的还不错。 下面进入正…

手机轰炸机 短信轰炸 可匣 二90二1243交流

使用 fiddler 抓包 获取到了 100+个 发送短信验证的接口 使用自己手机试了一下 速度非常快。因为是同时迸发,所以导致手机短信量一瞬间到了100+ 但是会导致一个问题,就是无感知情况 于是调整接口请求方式,设置异步请求,间隔3s钟,这次以后会达到一个比较好的效果 没办法上传…

元宇宙虚拟展厅_元宇宙线上展馆制作成本有哪些?

在元宇宙中制作虚拟展厅的成本可能因多种因素而有很大差异,包括复杂程度、定制、大小、平台以及所提供的支持和服务水平,企业在决定是否在元宇宙中制作虚拟展厅时应仔细考虑自身需求和预算,并应寻找经验丰富的开发公司和具有成功合作的平台,以确保获得最佳结果.目前,3DCAT已…

利用两个IO口检测6个按键

利用两个IO口检测6个按键用两个IO口扫描6个按键,原理图与扫描程序。 先贴上原理图:以下为思路: 将两个IO口配置为上拉输出(STM32中)或者初始化输出高电平、 1、首先:IO1,IO2输出高电平。 S1按下,电流方向由R1流向GND,此时IO1为低电平。S2按下,电流方向由R2流向GND,此…

织梦dedecms上传服务器后数据连接失败怎么办

当织梦DeDeCMS上传到服务器后出现数据连接失败的问题时,可以采取以下几个步骤来解决这个问题: 1. 检查数据库连接信息打开common.inc.php文件:在织梦CMS的 data 文件夹中找到 common.inc.php 文件。 修改数据库连接信息:数据库服务器地址:确认数据库服务器地址是否正确,例…

织梦DEDECMS怎么实现鼠标移到标题显示完整的title

在织梦DeDeCMS中,实现鼠标移到标题时显示完整的title可以通过修改模板文件中的标签来完成。下面是一种简单的方法来实现这一功能:步骤 1: 找到需要修改的模板文件 打开您需要修改的模板文件,通常这些文件位于 templets 文件夹中。 寻找包含文章标题的地方,例如在列表页模板…