python时间变化与字符串替换技术及读JSON文件等实践笔记

news2024/10/5 14:18:02

1. 需求描述

  1. 根据预测出结果发出指令的秒级时间,使用时间戳,也就是设定时间(字符串)转为数字时间戳。
  2. 时间计算转换过程中,出现单个整数(例如8点),按字符串格式补齐两位“08”。
  3. 字符串去空格,替换特殊字符(例如空格,数据中的逗号“1,024.00”),特别是输入数据不规范的时候,读入到pandas中时,把数据变成了object问题。
  4. sql语句参数传递。
  5. 读取JSON格式日志文件。
  6. 生成正态分布随机数。

2. python时间处理

2.1. Python时间转换为整数(时间戳)

在日常的编程开发中,我们经常会遇到需要将时间转换为整数的情况。例如,我们可能需要将时间戳用于排序、计算时间间隔等操作。

什么是时间戳?
Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使用在Unix 系统、类Unix系统中,也在许多其他操作系统中被广泛采用。

Python的标准库中包含了time模块,该模块提供了一系列处理时间的函数,其中的time()函数来获取当前时间的时间戳,然后将时间戳转换为整数。

如下是使用time模块进行时间转换的示例代码:

import time

# 获取当前时间的时间戳
timestamp = int(time.time())
print("当前时间的时间戳:", timestamp)

如下是把时间字符串,转换为时间戳的示例代码:

tdt = time.strptime('2023-11-16 11:12', "%Y-%m-%d %H:%M")
timestamp = int(time.mktime(tdt))
print("当前时间的时间戳:", timestamp)

Python的标准库中datetime模块,该模块提供了更加方便的日期和时间操作方法。我们可以使用datetime模块中的datetime类来获取当前时间,并将其转换为整数。

如下是使用datetime模块进行时间转换的示例代码:

from datetime import datetime

# 获取当前时间
now = datetime.now()

# 将当前时间转换为整数
timestamp = int(now.timestamp())
print("当前时间的时间戳:", timestamp)

2.2. 时间戳转时间

使用 time 模块的 localtime() 函数将时间戳转换为本地时间的 struct_time 对象

timestamp = 1700193600
local_time= time.localtime(timestamp)
time.strftime("%Y-%m-%d %H:%M:%S", local_time)

2.3. 时间间隔计算

timedelta() 表示两个 date 对象或者 time 对象,或者 datetime 对象之间的时间间隔,精确到微秒。

	datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

如下当前时间延后5分钟,示例代码如下:

import datetime
now = datetime.datetime.now()  + datetime.timedelta(minutes=5)
print('延迟时间是:', now.strftime("%Y-%m-%d %H:%M"))

3. 字符串替换

3.1. python补全字符串

3.1.1. 右对齐补全字符串

例如:我们计算获取到时间为9点,如果补全为“09”,用于转换为时间,方法如下:

s = '9'
s.rjust(2,'0')

结果为09。

3.1.2. 左对齐补全字符串

s = 'ab'
s.ljust(4,'0')

结果为ab00。

3.2. 字符串去空格

3.2.1. 去开头空格

使用strip()方法,是一个Python内置函数,可以用来去除字符串开头和结尾的空格。例如,以下代码将使用strip()方法去除字符串开头和结尾的空格:

s = ' dd'
print(s.strip())

3.2.2. 去任何地方空格

使用replace()方法,可以用来替换字符串中的一些字符。我们可以使用它来替换空格字符。例如,以下代码将使用replace()方法将空格字符替换为空字符串:


s = ' dd'
print(s.replace(' ',''))

3.3. 动态sql语句替换变量

例如:

date = '2023-11-14'
days = 1
sql = '''
select CONCAT(DATE_FORMAT(RecordTime,'%H:'), case when MINUTE(RecordTime)<30 then '00' else '30' end) CreateTime,
                sum(ThisPower) Capacity  from electricitymeter_history
                where  DATE_FORMAT(RecordTime,'%Y-%m-%d')<'{date}'
                and RecordTime>=date_sub(str_to_date('{date}', '%Y-%m-%d'), interval {days} day)
                group by  CONCAT(DATE_FORMAT(RecordTime,'%H:'), case when MINUTE(RecordTime)<30 then '00' else '30' end)                  
                order by CreateTime
'''
sql = sql.format('{}',date=date,days=days)
print(sql)

在这里插入图片描述

在Python中,使用format函数可以将变量插入字符串中进行格式化。其基本语法为:

  • formatted_string = “Text {}”.format(variable)
  • "Text {}"是一个字符串,其中的{}表示一个占位符,format函数将会把后面的变量替换进去。

4. python读取JSON文件

Json文件的语法:

  • 主要数据类型为对象{}(类似Python中的字典)和数组[] (类似Python中的列表)
  • Json文件的最外层是一个对象{},或者是一个数组[]
  • Json中的对象是由键值对组成,每个数据之间用逗号隔开,最后一个数据后无逗号
  • Json中的字符串必须使用双引号

JSON文件示例:

{"SoC":0.2,"peak2power":379,"curve":
[{"timestamp": 1700065800, "value": 86, "tmp": "2023-11-16 00:30"}, 
{"timestamp": 1700087400, "value": 0, "tmp": "2023-11-16 06:30"}, 
{"timestamp": 1700096400, "value": 0, "tmp": "2023-11-16 09:00"}, 
{"timestamp": 1700098200, "value": 0, "tmp": "2023-11-16 09:30"}]}

注意:字符串必须使用双引号,我在这地方耽搁时间了!

import json
with open('curve.json', 'r',encoding='utf-8') as f:
    print(str(f))
    content = json.load(f)
content

5. 其他

生成正态分布随机数,使用random库中的gauss()方法。

Python内置的random库中包含了生成正态分布随机数的方法。如下面的使用方法。

import random

# 生成均值为mu,标准差为sigma的正态分布随机数
random_num = random.gauss(mu, sigma)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多媒体ffmpeg学习教程

多媒体ffmpeg 目前比较流行的音视频文件为:MP4 flv m3u8 ffmpeg ffmpeg ffplay ffprobe ffserverffmpeg -i INPUT -vf "split [main][tmp]; [tmp] cropiw:ih/2:0:0, vflip [flip];[main][flip] overlay0:H/2" OUTPUTffmpeg -i 2022.mp4 -vcodec mpeg4 -b:…

酷柚易汛ERP - 通用设置操作指南

1、系统设置 对系统进行初步设置&#xff0c;如系统LOGO、站点名称、备案号、版权信息、尾部信息及系统相关的一些基础设置 2、应用/小程序配置 对系统移动端进行相关配置 3、短信配置 对系统短信进行配置&#xff0c;此配置用于移动端一些通知类信息发送【目前仅支持阿里云…

PostgreSQL按月计算每天值的累加

要按月计算每天值的累加&#xff0c;您可以使用PostgreSQL中的日期函数和窗口函数。下面是一个示例查询&#xff0c;假设您有一个名为"table_name"的表&#xff0c;其中包含一个日期列"date_column"和一个数值列"value_column"&#xff1a; SELE…

【Android】带下划线的TextView

序言 我们有时候需要一个类似这样的显示&#xff0c;上面是文字&#xff0c;下面是一条线 这样的显示效果是TextView实现不了的&#xff0c;需要我们自己进行修改一下。 实现 创建一个UnderlineTextView&#xff0c;继承系统的TextView class UnderlineTextView(mContext…

spider 网页爬虫中的 AWS 实例数据获取问题及解决方案

前言 AAWS实例数据对于自动化任务、监控、日志记录和资源管理非常重要。开发人员和运维人员可以通过AWS提供的API和控制台访问和管理这些数据&#xff0c;以便更好地管理和维护他们在AWS云上运行的实例。然而&#xff0c;在使用 spider 框架进行网页爬取时&#xff0c;我们常常…

【Kingbase FlySync】界面化管控平台:2.配置数据库同步之KES>KES

【Kingbase FlySync】界面化管控平台:3.配置数据库同步之KES->KES 部署KES数据库到KES数据库同步服务1.登录KFS管理平台2.开始配置数据节点信息(1)配置node1数据节点(2)配置node2数据节点 3.KFS拓扑图配置4.开始部署5.启动同步程序并查验是否运行正常 测试同步1.从node1数据…

nginx学习(2)

Nginx 反向代理案例2 1. 实现效果 实现效果&#xff1a;使用 nginx 反向代理&#xff0c;根据访问的路径跳转到不同端口的服务中 nginx 监听端口为 8001&#xff0c; 访问 http://127.0.0.1:8001/edu/ 直接跳转到 127.0.0.1:8081 访问 http://127.0.0.1:8001/vod/ 直接跳转到 …

TCP与UDP协议

TCP与UDP协议 1、TCP协议&#xff1a; 1、TCP特性&#xff1a; TCP 提供一种面向连接的、可靠的字节流服务。在一个 TCP 连接中&#xff0c;仅有两方进行彼此通信。广播和多播不能用于 TCP。TCP 使用校验和&#xff0c;确认和重传机制来保证可靠传输。TCP 给数据分节进行排序…

LAST论文翻译

《Read Ten Lines at One Glance: Line-Aware Semi-Autoregressive Transformer for Multi-Line Handwritten Mathematical Expression Recognition》论文翻译 文章目录 《Read Ten Lines at One Glance: Line-Aware Semi-Autoregressive Transformer for Multi-Line Handwritt…

深度学习中文汉字识别 计算机竞赛

文章目录 0 前言1 数据集合2 网络构建3 模型训练4 模型性能评估5 文字预测6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习中文汉字识别 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xf…

Seaborn 回归(Regression)及矩阵(Matrix)绘图

Seaborn中的回归包括回归拟合曲线图以及回归误差图。Matrix图主要是热度图。 1. 回归及矩阵绘图API概述 seaborn中“回归”绘图函数共3个&#xff1a; lmplot&#xff08;回归统计绘图&#xff09;&#xff1a;figure级regplot函数&#xff0c;绘图同regplot完全相同。(lm指lin…

学习笔记6——垃圾回收

学习笔记系列开头惯例发布一些寻亲消息 链接&#xff1a;https://baobeihuijia.com/bbhj/contents/3/190801.html java垃圾回收&#xff08;stop the world&#xff09; 专注于堆和方法区的垃圾回收&#xff0c;年轻代&#xff0c;老年代&#xff0c;永久代判断对象是否还存…

Audio PA 功能失败导致Android (A12)重启

1. 问题现象 做完一版os准备导入工厂生产&#xff0c;简称之位Ros&#xff08;release&#xff09;&#xff0c;工厂有独立的用于验证其功能的os&#xff0c;简称Fos。出厂之前&#xff0c;需要做Fos到Ros的切换。然而&#xff0c;在切到Ros的时候&#xff0c;发现有低概率的设…

linux 服务器进程、端口查找,nginx 配置日志查找,lsof 命令详解

一 、根据端口号 查看文件的部署位置 1.1 使用查看端口号对应的进程信息 方式一 &#xff1a; 使用netstat命令 netstat -tuln | grep 端口号-t&#xff1a;显示TCP连接 -u&#xff1a;显示UDP连接 -l&#xff1a;仅显示监听状态的连接 -n&#xff1a;以数字形式显示端口…

Vellum —— Constraint 约束

目录 Stretch Bend Pin Drag 解算器对DOP外节点的约束属性&#xff0c;只会读取起始帧的值&#xff1b; Stretch 保持点间的初始距离&#xff1b; Stiffness 越高的stiffness&#xff0c;就需要越多的迭代来收敛&#xff0c;如constraint iterations或substeps(子步会更好)…

IC设计企业,如何安全、可控、高效的传输设计文档和研发数据?

近年来&#xff0c;半导体的应用领域不断拓展&#xff0c;在全球经济和社会发展中的重要性与日俱增&#xff0c;半导体芯片是数字经济的核心&#xff0c;承载着现代产业发展&#xff0c;具有举足轻重的价值。从半导体行业的角度&#xff0c;IC设计是关键的一环&#xff0c;我国…

(C++)string类及其函数

愿所有美好如期而遇 标准库中的string类 string是对类模板实例化出的类型的重命名&#xff0c;也就是说string就是basic_string<char>这个类型。 string是表示字符串的字符串类 该类接口与常规类的接口基本相同&#xff0c;再添加了一些专门用来操作string的常规操作。…

2023年中职“网络安全“—Linux系统渗透提权③

2023年中职"网络安全"—Linux系统渗透提权③ Linux系统渗透提权任务环境说明&#xff1a;1. 使用渗透机对服务器信息收集&#xff0c;并将服务器中SSH服务端口号作为flag提交&#xff1b;2. 使用渗透机对服务器信息收集&#xff0c;并将服务器中主机名称作为flag提交…

腾讯云重新注册算不算新用户?算!

腾讯云重新注册算新用户&#xff0c;但有以下限制&#xff1a; 首先&#xff0c;实名认证信息不能沿用老账号的信息&#xff0c;必须使用新的信息进行认证。这是为了确保重新注册的账号能够被视为新用户&#xff0c;并享受到新用户的特权和优惠。 腾讯云双十一领9999代金券 h…

Spring Boot 中使用 ResourceLoader 加载资源的完整示例

ResourceLoader 是 Spring 框架中用于加载资源的接口。它定义了一系列用于获取资源的方法&#xff0c;可以处理各种资源&#xff0c;包括类路径资源、文件系统资源、URL 资源等。 以下是 ResourceLoader 接口的主要方法&#xff1a; Resource getResource(String location)&am…