有用的知識點整理

2022-06-11 09:09:09 字數 3873 閱讀 5664

時間的相互轉化

from dateutil.relativedelta import relativedelta

from datetime import *

import time

t = int(str(date.today()).split("-")[1])-3 #現在的日期與3月相差幾個月

today = date.today() # 列印年月日

today_time = int(str((time.mktime(today.timetuple()))).split(".")[0]) #今天凌晨的時間戳

time_local = time.localtime(today_time)

#轉換成新的時間格式(2016-05-05 20:28:54)

dt = time.strftime("%y-%m-%d %h:%m:%s",time_local) #時間戳轉化為時間格式,字串

o_time = datetime.strptime(dt,"%y-%m-%d %h:%m:%s")-relativedelta(months=t)

#字串時間轉化為時間格式 並回到三月份

now = datetime.now()-relativedelta(months=t)

print("today",today,)

print("today_time",today_time)

print(t)

print('o_time',o_time,type(o_time))

print(now,type(now))

today 2019-05-09

today_time 1557331200

2o_time 2019-03-09 00:00:00 2019-03-09 09:40:39.927366

django orm中列印sql語句

fws = faultwarning.objects.filter(type='error',create_time__gt=st_time,create_time__lt=now)

print(fws.query)

data = faultwarningserializer(fw, many=true, context=).data
計算百分比保留一位小數

data_dic[_] = (new_dic.get(_), ''.format(((new_dic.get(_)) / count) * 100) + '%')

weater_system_count_per = '%'.format((weater_system_count / total_count) * 100)

wind_system_count_per = '%'.format((wind_system_count / total_count) * 100)

資料庫更新時間

sql1 = 'update bms_rule_faultwarning set create_time = addtime (date("") + interval 0 hour,time(create_time)),update_time = addtime (date("") + interval 0 hour,time(update_time))where create_time like "%"'.format('2019-02-13','2019-04-13')
字典根據value排序

dic = 

new_dic = dict(sorted(dic.items(), key=lambda d: d[1], reverse=true))

print(new_dic)

sorted函式按key值對字典排序 

dic = 

t = sorted(dic.keys(),reverse=true) #倒序

print(t)

['name2', 'name1', 'name', 'age']

sorted函式按value值對字典排序

要對字典的value排序則需要用到key引數,在這裡主要提供一種使用lambda表示式的方法,如下:

dic = 

t = sorted(dic.items(),key=lambda item:item[1],reverse=true) #倒序

print(t)

這裡的d.items()實際上是將dic轉換為可迭代物件('name1', 'xiao,ming'), ('name2', 'wq'), ('name', 'alex'), ('age', '18'),items()方法將字典的元素 轉化為了元組,而這裡key引數對應的lambda表示式的意思則是選取元組中的第二個元素作為比較引數(如果寫作key=lambda item:item[0]的話則是選取第乙個元素作為比較物件,也就是key值作為比較物件。lambda x:y中x表示輸出引數,y表示lambda 函式的返回值),所以採用這種方法可以對字典的value進行排序。注意排序後的返回值是乙個list,而原字典中的名值對被轉換為了list中的元組。

字典根據鍵排序

d = 

new_d = {}

for k in sorted(d, reverse=true):

new_d[k] = d[k]

print(new_d)

關於distinct()去重真正的做法是這樣的,如果用mysql 的話,distinct() 裡面不要任何引數,引數應該寫在 value 中去,類似如下方式:

if __name__ == "__main__":

a = category.objects.values('parentcode','email').distinct()

for obj in a:

print obj

這表示按照 parentcode,email 組合去除重複的內容.

如果是這樣:

if __name__ == "__main__":

a = category.objects.values('parentcode').distinct()

for obj in a:

print obj

就表示按照 parentcode 去除重複的內容。  

classname.objects.values('name').distinct() .order_by('name')
時間自動新增

created_at = models.datetimefield(auto_now_add=true)

updated_at = models.datetimefield(auto_now=true)

在pycharm下方的terminal終端中輸入命令:

遞迴實現斐波那契數列

def  fbnq(n):

if n==1 or n==2:

return 1

return fbnq(n-1)+fbnq(n-2)

y = fbnq(7)

print(y)

記一次redis容器無法啟動問題

知識點整理

一 標準庫容器和演算法 1.順序容器 與前面類似 2.關聯容器 map和multimap 元素包含key 鍵 和值 value 兩部分 按照鍵對元素排序 map不允許重複元素出現,但multimap可以 set和multliset 是包含已排序物件的關聯容器 只是單純的鍵的集合 set不允許重複鍵出...

知識點整理

一 標準庫容器和演算法 1.順序容器 與前面類似 2.關聯容器 map和multimap 元素包含key 鍵 和值 value 兩部分 按照鍵對元素排序 map不允許重複元素出現,但multimap可以 set和multliset 是包含已排序物件的關聯容器 只是單純的鍵的集合 set不允許重複鍵出...

知識點整理

一 狀態控制碼 code,control flag 標誌位欄位 u a p r s f 佔6位元。各 位元的含義如下 ack 確認位元 acknowledge 只有當ack 1時確認號字段才有效,代表這個封包為確認封包。當ack 0時,確認號無效。psh push function 若為1時,代表要...