東莞常平二手房?jī)r(jià)最新消息重慶seo1
1. 需求描述
- 根據(jù)預(yù)測(cè)出結(jié)果發(fā)出指令的秒級(jí)時(shí)間,使用時(shí)間戳,也就是設(shè)定時(shí)間(字符串)轉(zhuǎn)為數(shù)字時(shí)間戳。
- 時(shí)間計(jì)算轉(zhuǎn)換過(guò)程中,出現(xiàn)單個(gè)整數(shù)(例如8點(diǎn)),按字符串格式補(bǔ)齊兩位“08”。
- 字符串去空格,替換特殊字符(例如空格,數(shù)據(jù)中的逗號(hào)“1,024.00”),特別是輸入數(shù)據(jù)不規(guī)范的時(shí)候,讀入到pandas中時(shí),把數(shù)據(jù)變成了object問(wèn)題。
- sql語(yǔ)句參數(shù)傳遞。
- 讀取JSON格式日志文件。
- 生成正態(tài)分布隨機(jī)數(shù)。
2. python時(shí)間處理
2.1. Python時(shí)間轉(zhuǎn)換為整數(shù)(時(shí)間戳)
在日常的編程開(kāi)發(fā)中,我們經(jīng)常會(huì)遇到需要將時(shí)間轉(zhuǎn)換為整數(shù)的情況。例如,我們可能需要將時(shí)間戳用于排序、計(jì)算時(shí)間間隔等操作。
什么是時(shí)間戳?
Unix時(shí)間戳(Unix timestamp),或稱Unix時(shí)間(Unix time)、POSIX時(shí)間(POSIX time),是一種時(shí)間表示方式,定義為從格林威治時(shí)間1970年01月01日00時(shí)00分00秒起至現(xiàn)在的總秒數(shù)。Unix時(shí)間戳不僅被使用在Unix 系統(tǒng)、類Unix系統(tǒng)中,也在許多其他操作系統(tǒng)中被廣泛采用。
Python的標(biāo)準(zhǔn)庫(kù)中包含了time模塊,該模塊提供了一系列處理時(shí)間的函數(shù),其中的time()函數(shù)來(lái)獲取當(dāng)前時(shí)間的時(shí)間戳,然后將時(shí)間戳轉(zhuǎn)換為整數(shù)。
如下是使用time模塊進(jìn)行時(shí)間轉(zhuǎn)換的示例代碼:
import time# 獲取當(dāng)前時(shí)間的時(shí)間戳
timestamp = int(time.time())
print("當(dāng)前時(shí)間的時(shí)間戳:", timestamp)
如下是把時(shí)間字符串,轉(zhuǎn)換為時(shí)間戳的示例代碼:
tdt = time.strptime('2023-11-16 11:12', "%Y-%m-%d %H:%M")
timestamp = int(time.mktime(tdt))
print("當(dāng)前時(shí)間的時(shí)間戳:", timestamp)
Python的標(biāo)準(zhǔn)庫(kù)中datetime模塊,該模塊提供了更加方便的日期和時(shí)間操作方法。我們可以使用datetime模塊中的datetime類來(lái)獲取當(dāng)前時(shí)間,并將其轉(zhuǎn)換為整數(shù)。
如下是使用datetime模塊進(jìn)行時(shí)間轉(zhuǎn)換的示例代碼:
from datetime import datetime# 獲取當(dāng)前時(shí)間
now = datetime.now()# 將當(dāng)前時(shí)間轉(zhuǎn)換為整數(shù)
timestamp = int(now.timestamp())
print("當(dāng)前時(shí)間的時(shí)間戳:", timestamp)
2.2. 時(shí)間戳轉(zhuǎn)時(shí)間
使用 time 模塊的 localtime() 函數(shù)將時(shí)間戳轉(zhuǎn)換為本地時(shí)間的 struct_time 對(duì)象
timestamp = 1700193600
local_time= time.localtime(timestamp)
time.strftime("%Y-%m-%d %H:%M:%S", local_time)
2.3. 時(shí)間間隔計(jì)算
timedelta() 表示兩個(gè) date 對(duì)象或者 time 對(duì)象,或者 datetime 對(duì)象之間的時(shí)間間隔,精確到微秒。
datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
如下當(dāng)前時(shí)間延后5分鐘,示例代碼如下:
import datetime
now = datetime.datetime.now() + datetime.timedelta(minutes=5)
print('延遲時(shí)間是:', now.strftime("%Y-%m-%d %H:%M"))
3. 字符串替換
3.1. python補(bǔ)全字符串
3.1.1. 右對(duì)齊補(bǔ)全字符串
例如:我們計(jì)算獲取到時(shí)間為9點(diǎn),如果補(bǔ)全為“09”,用于轉(zhuǎn)換為時(shí)間,方法如下:
s = '9'
s.rjust(2,'0')
結(jié)果為09。
3.1.2. 左對(duì)齊補(bǔ)全字符串
s = 'ab'
s.ljust(4,'0')
結(jié)果為ab00。
3.2. 字符串去空格
3.2.1. 去開(kāi)頭空格
使用strip()方法,是一個(gè)Python內(nèi)置函數(shù),可以用來(lái)去除字符串開(kāi)頭和結(jié)尾的空格。例如,以下代碼將使用strip()方法去除字符串開(kāi)頭和結(jié)尾的空格:
s = ' dd'
print(s.strip())
3.2.2. 去任何地方空格
使用replace()方法,可以用來(lái)替換字符串中的一些字符。我們可以使用它來(lái)替換空格字符。例如,以下代碼將使用replace()方法將空格字符替換為空字符串:
s = ' dd'
print(s.replace(' ',''))
3.3. 動(dòng)態(tài)sql語(yǔ)句替換變量
例如:
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函數(shù)可以將變量插入字符串中進(jìn)行格式化。其基本語(yǔ)法為:
- formatted_string = “Text {}”.format(variable)
- "Text {}"是一個(gè)字符串,其中的{}表示一個(gè)占位符,format函數(shù)將會(huì)把后面的變量替換進(jìn)去。
4. python讀取JSON文件
Json文件的語(yǔ)法:
- 主要數(shù)據(jù)類型為對(duì)象{}(類似Python中的字典)和數(shù)組[] (類似Python中的列表)
- Json文件的最外層是一個(gè)對(duì)象{},或者是一個(gè)數(shù)組[]
- Json中的對(duì)象是由鍵值對(duì)組成,每個(gè)數(shù)據(jù)之間用逗號(hào)隔開(kāi),最后一個(gè)數(shù)據(jù)后無(wú)逗號(hào)
- Json中的字符串必須使用雙引號(hào)
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"}]}
注意:字符串必須使用雙引號(hào),我在這地方耽擱時(shí)間了!
import json
with open('curve.json', 'r',encoding='utf-8') as f:print(str(f))content = json.load(f)
content
5. 其他
生成正態(tài)分布隨機(jī)數(shù),使用random庫(kù)中的gauss()方法。
Python內(nèi)置的random庫(kù)中包含了生成正態(tài)分布隨機(jī)數(shù)的方法。如下面的使用方法。
import random# 生成均值為mu,標(biāo)準(zhǔn)差為sigma的正態(tài)分布隨機(jī)數(shù)
random_num = random.gauss(mu, sigma)