当前位置: 首页 > 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;逻辑的连贯性都有很大的帮助。 实现思路 封装创建中间联系对象的函数 继承可以简单理解为建立子类和父类之间的联系&…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器

一、原理介绍 传统滑模观测器采用如下结构&#xff1a; 传统SMO中LPF会带来相位延迟和幅值衰减&#xff0c;并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF)&#xff0c;可以去除高次谐波&#xff0c;并且不用相位补偿就可以获得一个误差较小的转子位…...

如何通过git命令查看项目连接的仓库地址?

要通过 Git 命令查看项目连接的仓库地址&#xff0c;您可以使用以下几种方法&#xff1a; 1. 查看所有远程仓库地址 使用 git remote -v 命令&#xff0c;它会显示项目中配置的所有远程仓库及其对应的 URL&#xff1a; git remote -v输出示例&#xff1a; origin https://…...

RushDB开源程序 是现代应用程序和 AI 的即时数据库。建立在 Neo4j 之上

一、软件介绍 文末提供程序和源码下载 RushDB 改变了您处理图形数据的方式 — 不需要 Schema&#xff0c;不需要复杂的查询&#xff0c;只需推送数据即可。 二、Key Features ✨ 主要特点 Instant Setup: Be productive in seconds, not days 即时设置 &#xff1a;在几秒钟…...

【大厂机试题解法笔记】矩阵匹配

题目 从一个 N * M&#xff08;N ≤ M&#xff09;的矩阵中选出 N 个数&#xff0c;任意两个数字不能在同一行或同一列&#xff0c;求选出来的 N 个数中第 K 大的数字的最小值是多少。 输入描述 输入矩阵要求&#xff1a;1 ≤ K ≤ N ≤ M ≤ 150 输入格式 N M K N*M矩阵 输…...

简单聊下阿里云DNS劫持事件

阿里云域名被DNS劫持事件 事件总结 根据ICANN规则&#xff0c;域名注册商&#xff08;Verisign&#xff09;认定aliyuncs.com域名下的部分网站被用于非法活动&#xff08;如传播恶意软件&#xff09;&#xff1b;顶级域名DNS服务器将aliyuncs.com域名的DNS记录统一解析到shado…...