当前位置: 首页 > news >正文

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

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_historywhere  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)

相关文章:

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

1. 需求描述 根据预测出结果发出指令的秒级时间&#xff0c;使用时间戳&#xff0c;也就是设定时间&#xff08;字符串&#xff09;转为数字时间戳。时间计算转换过程中&#xff0c;出现单个整数&#xff08;例如8点&#xff09;&#xff0c;按字符串格式补齐两位“08”。字符…...

leetcode刷题日记:141. Linked List Cycle(环形链表)

这一题是给我们一个链表让我们判断这是否是一个环形链表&#xff0c;我们知道如果一个链表中有环的话这一个链表是没有办法访问到尾的&#xff0c; 假若有如图所示的带环链表&#xff1a; 我们从图示中很容易看出来这一个链表在访问的时候会在里面转圈&#xff0c;我们再来看看…...

html书本翻页效果,浪漫表白日记本(附源码)

文章目录 1.设计来源1.1 书本正面1.2 界面1-21.3 界面3-41.4 界面5-61.5 界面7-81.6 界面9-101.7 界面11-121.8 书本结尾 2.效果和源码2.1 动态效果2.2 源代码 源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/1…...

【Mysql】学习笔记

目录 基本操作登录指令&#xff1a;启动、关闭、重启mysql指令&#xff08;适用于centos7&#xff09;&#xff1a;查看mysql运行状态&#xff1a;删除和创建表 修改密码&#xff08;ubuntu18.04可行&#xff0c;其余版本行不行不知道&#xff09;3 使用MYSQL了解数据库和表 4 …...

工作记录-------java文件的JVM之旅(学习篇)---好理解

一个java文件&#xff0c;如何实现功能呢&#xff1f;需要去JVM这个地方。 java文件高高兴兴的来到JVM&#xff0c;想要开始JVM之旅&#xff0c;它确说&#xff1a;“现在的我还不能进去&#xff0c;需要做一次转换&#xff0c;生成class文件才行”。为什么这样呢&#xff1f;…...

城市内涝对策,万宾科技内涝积水监测仪使用效果

随着城市化进程的加速&#xff0c;城市道路积水问题明显越来越多&#xff0c;给人们的出行和生活带来更多的不便。内涝积水监测仪作为高科技产品能够实时监测道路积水情况&#xff0c;为城市排水系统的管理和维护提供重要的帮助。 在城市生命线的基础设施规划之中&#xff0c;地…...

android的通知使用

在 Android 中&#xff0c;通知&#xff08;Notification&#xff09;是一种在状态栏显示消息的方式&#xff0c;通常用于向用户展示应用程序的重要信息、事件或更新。以下是一个简单的示例&#xff0c;演示如何在 Android 应用程序中使用通知&#xff1a; import android.app…...

001 opencv addWeighted

目录 一、环境 二、addWeighted函数 三、代码演示 一、环境 本文使用环境为&#xff1a; Windows10Python 3.9.17opencv-python 4.8.0.74 二、addWeighted函数 OpenCV中的cv.addWeighted函数是一个用于图像叠加的函数&#xff0c;它可以将两个具有相同尺寸和类型的图像按…...

2311rust,到35版本更新

1.32.0 rustup self update rustup update stablerustup更新自己. dbg宏 打印调试,你需要: let x 5; println!("{:?}", x); //甚至可能是 println!("{:#?}", x);在Rust1.32.0中,为此添加了个新的dbg!宏: fn main() {let x 5;dbg!(x); }如果运行此…...

UniPro提高集成能力 让客户专注于交付价值

一千个哈姆莱特就有一千个读者&#xff0c;一千个开发团队&#xff0c;也会有各不相同的软件工具和工作流程。工具与工具之间&#xff0c;功能上的割裂亦或重叠&#xff0c;都会给企业和团队的协作带来阻塞&#xff0c;结果就会导致团队之间各自为战、信息孤岛的形成以及资源的…...

Python---函数的作用,定义,使用步骤(调用步骤)

Python实际开发中&#xff0c;使用函数的目的只有一个 “让我们的代码可以被重复使用” 函数的作用有两个&#xff1a; ① 模块化编程 ② 代码重用 在编程领域&#xff0c;编程可以分为两大类&#xff1a;① 模块化编程 ② 面向对象编程 函数就是一个 被命名的、独立的…...

ERP智能管理系统:智能化的未来之路

ERP智能管理系统&#xff1a;智能化的未来之路 科技飞速发展&#xff0c;人工智能(AI)和大数据等先进技术的应用正在改变着企业的运营模式。其中&#xff0c;ERP智能管理系统在帮助企业实现智能化运营、提高效率、降低成本等方面发挥着越来越重要的作用。本文将为您详细介绍ERP…...

c++ memccpy和 = 都可以用于赋值操作

memccpy和都可以用于赋值操作&#xff0c;但它们的作用和使用方式有所不同。 是C中的赋值运算符&#xff0c;可以用于基本类型、对象、结构体等的赋值操作。对于结构体&#xff0c;它会执行成员到成员的赋值&#xff0c;也就是浅拷贝。如果结构体中有指针成员&#xff0c;赋值只…...

Golang for 循环中的隐式内存别名问题

Golang for 循环中的隐式内存别名问题 隐式内存别名是指在循环迭代过程中对同一变量的多次引用可能导致不可预期的结果。这主要涉及到 goroutine 和闭包的使用场景&#xff0c;在并发编程中容易引起 bug。 例如&#xff0c;下面的示例代码中存在隐式内存别名问题&#xff1a;…...

2023年亚太杯数学建模思路 - 复盘:光照强度计算的优化模型

文章目录 0 赛题思路1 问题要求2 假设约定3 符号约定4 建立模型5 模型求解6 实现代码 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 问题要求 现在已知一个教室长为15米&#xff0c;宽为12米&…...

Unity——利用Mesh绘制图形

什么是Mesh? Mesh 是用于表示和存储3D模型几何信息的类。它包含了顶点坐标、法线、UV坐标和其他与几何形状相关的数据&#xff0c;同时也包含了定义了这些数据如何连接以形成三角形的索引。 通过Mesh类&#xff0c;你可以创建、修改和渲染3D模型。一些常见的操作包括&#xf…...

web3资讯及远程工作

各位如果想了解区块链相关的消息可以通过如下网址了解&#xff0c;里面还会有相关职位招聘&#xff08;包括远程工作&#xff09;&#xff0c;还可以在里面进行发帖&#xff0c;进入即可获得1000积分&#xff0c;后期可以兑换一些礼品Cryptosquare...

契约锁助力货物进出口全程无纸化,加速通关、降低贸易成本

我国作为全球最大的制造业国家和最大的货物贸易国家&#xff0c;政府始终注重引入数字化技术&#xff0c;创新管理和服务模式&#xff0c;帮助降低企业进出口成本&#xff0c;加速货物流通。 近年国家海关总署、商务部、税务总局及各地政府在进出口“报关”、“提货”、“收货备…...

生活中的综合能力

暖气管道不通 1 逐层排查哪层管道不通 2 排查该栋楼主管道和锅炉房总管道的连接口是否通畅 找不到主管道和总管道的连接口 查看其他楼和总管道的连接口 复盘&#xff1a; 先整体&#xff0c;后局部 求同求异思维&#xff1a;找差异&#xff0c;找正常暖气管道和异常暖气管…...

ES5中实现继承

本篇文章主要说明在ES5中最通用最兼容的继承实现方式&#xff0c;继承作为面向对象的三大特性之一&#xff0c;在js中实现继承对代码的简洁性&#xff0c;逻辑的连贯性都有很大的帮助。 实现思路 封装创建中间联系对象的函数 继承可以简单理解为建立子类和父类之间的联系&…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...

c++第七天 继承与派生2

这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分&#xff1a;派生类构造函数与析构函数 当创建一个派生类对象时&#xff0c;基类成员是如何初始化的&#xff1f; 1.当派生类对象创建的时候&#xff0c;基类成员的初始化顺序 …...

Vue 3 + WebSocket 实战:公司通知实时推送功能详解

&#x1f4e2; Vue 3 WebSocket 实战&#xff1a;公司通知实时推送功能详解 &#x1f4cc; 收藏 点赞 关注&#xff0c;项目中要用到推送功能时就不怕找不到了&#xff01; 实时通知是企业系统中常见的功能&#xff0c;比如&#xff1a;管理员发布通知后&#xff0c;所有用户…...

Java数组Arrays操作全攻略

Arrays类的概述 Java中的Arrays类位于java.util包中&#xff0c;提供了一系列静态方法用于操作数组&#xff08;如排序、搜索、填充、比较等&#xff09;。这些方法适用于基本类型数组和对象数组。 常用成员方法及代码示例 排序&#xff08;sort&#xff09; 对数组进行升序…...

前端工具库lodash与lodash-es区别详解

lodash 和 lodash-es 是同一工具库的两个不同版本&#xff0c;核心功能完全一致&#xff0c;主要区别在于模块化格式和优化方式&#xff0c;适合不同的开发环境。以下是详细对比&#xff1a; 1. 模块化格式 lodash 使用 CommonJS 模块格式&#xff08;require/module.exports&a…...

Android屏幕刷新率与FPS(Frames Per Second) 120hz

Android屏幕刷新率与FPS(Frames Per Second) 120hz 屏幕刷新率是屏幕每秒钟刷新显示内容的次数&#xff0c;单位是赫兹&#xff08;Hz&#xff09;。 60Hz 屏幕&#xff1a;每秒刷新 60 次&#xff0c;每次刷新间隔约 16.67ms 90Hz 屏幕&#xff1a;每秒刷新 90 次&#xff0c;…...

EEG-fNIRS联合成像在跨频率耦合研究中的创新应用

摘要 神经影像技术对医学科学产生了深远的影响&#xff0c;推动了许多神经系统疾病研究的进展并改善了其诊断方法。在此背景下&#xff0c;基于神经血管耦合现象的多模态神经影像方法&#xff0c;通过融合各自优势来提供有关大脑皮层神经活动的互补信息。在这里&#xff0c;本研…...