自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一根短橫線在Golang 和 Python 中的妙用

開發(fā) 后端
一根不起眼的短橫線,在 Golang 和 Python 中,都能夠讓你不輸出某些不想要的字符。

 一根不起眼的短橫線,在 Golang 和 Python 中,都能夠讓你不輸出某些不想要的字符。

不輸出日期時間前面的0

我們在使用 Python 輸出時間日期的時候,一般格式是這樣的:YYYY-mm-dd HH:MM:SS,例如:2021-03-22 09:10:12??梢钥吹?3和09前面都有一個0。這樣做的好處,是可以讓日期時間保持相同的長度,于是就可以通過字符串的方式比較大小。

但有時候,因為某些原因,你可能確實不想補0,你就想輸出2021-3-22 9:10:12這種格式的時間。

但我們知道,在 Python 里面把日期時間格式化輸出,代碼如下:

  1. import datetime 
  2.  
  3. now = datetime.datetime.now() 
  4. dt_str = now.strftime('%Y-%m-%d %H:%M:%S'

在這個格式化符號里面,可以看到我們本身就使用的是一個字符,月份就是%m,難道還有另外一個符號用來表示不補0的日期?

實際上,不補0并不需要另外一個符號來表示,我們只需要在%和m之間加上一根短橫線就可以了:

  1. import datetime 
  2.  
  3. now = datetime.datetime.now() 
  4. dt_str = now.strftime('%Y-%-m-%-d %-H:%-M:%-S'
  5. print(dt_str) 

運行效果如下圖所示:

Golang 結(jié)構(gòu)體與 JSON 的互相轉(zhuǎn)換

在使用 Golang 的時候,我們有時候需要在結(jié)構(gòu)體和 JSON 字符串之間互相轉(zhuǎn)換。在轉(zhuǎn)換的工程中,可能會發(fā)現(xiàn)有些字段是多余的。我們不想讓 JSON中的某些字段轉(zhuǎn)到結(jié)構(gòu)體里面,或者不想讓結(jié)構(gòu)體里面的某些字段轉(zhuǎn)到 JSON 中去。

對于從 JSON 轉(zhuǎn)到結(jié)構(gòu)體,要忽略字段非常簡單,例如有如下一個 JSON 字符串:

  1. {"name""kingname""salary": 999999999, "address""上海""handsome"true

在轉(zhuǎn)成結(jié)構(gòu)體的時候,我不想要handsome這個字段,于是可以這樣寫代碼:

  1. package main 
  2.  
  3. import ( 
  4.  "encoding/json" 
  5.  "fmt" 
  6.  
  7. type Info struct { 
  8.  Name    string `json:"name"
  9.  Salary  int64  `json:"salary"
  10.  Address string `json:"address"
  11.  
  12. func main() { 
  13.  jsonstr := `{"name""kingname""salary": 999999999, "address""上海""handsome"true}` 
  14.  var info Info 
  15.  err := json.Unmarshal([]byte(jsonstr), &info) 
  16.     if err != nil { 
  17.         panic(err) 
  18.     } 
  19.  fmt.Println(info) 

運行效果如下圖所示:

但問題是,如果現(xiàn)在給你一個結(jié)構(gòu)體,但是轉(zhuǎn)成 JSON 的時候不想要其中一個字段,應(yīng)該怎么操作?可能有人會以為,在定義結(jié)果體的時候,不要加上json:"xxx"就可以了。但實際執(zhí)行的效果如下圖所示:

Golang 會直接使用這個字段在結(jié)構(gòu)體中的名字來轉(zhuǎn)成 JSON。

如果不想要這個字段,實際上有一個非常簡單的辦法,就是在定義結(jié)構(gòu)體的時候,加上json:"-",例如:

  1. type Info struct { 
  2.  Name     string `json:"name"
  3.  Salary   int64  `json:"salary"
  4.  Address  string `json:"address"
  5.  Handsome bool   `json:"-"

運行效果如下圖所示:

通過指定這個橫線,就能忽略這個字段了。

本文轉(zhuǎn)載自微信公眾號「未聞Code」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系未聞Code公眾號。

 

責(zé)任編輯:武曉燕 來源: 未聞Code
相關(guān)推薦

2020-05-08 09:37:32

網(wǎng)線網(wǎng)絡(luò)網(wǎng)速

2009-03-12 10:03:00

雙絞線連接網(wǎng)絡(luò)

2018-04-13 15:32:40

SQL團隊開發(fā)

2015-03-23 11:56:58

2022-08-15 07:32:03

SQL語句數(shù)據(jù)庫

2022-02-17 20:34:12

Python短路機制開發(fā)

2014-01-10 10:53:29

移動廣告平臺進化分發(fā)

2017-02-07 09:15:54

光纖傳輸介質(zhì)通信網(wǎng)絡(luò)

2016-12-01 09:30:03

運維網(wǎng)絡(luò)網(wǎng)線

2016-05-18 14:50:57

運維PortfastAPI

2020-07-16 11:16:57

云計算SD-WAN運營

2010-09-10 16:17:27

2010-09-08 15:16:46

clearCSS

2010-09-09 16:54:05

CSSclear

2022-12-13 10:28:53

2023-11-20 22:44:09

Golang并發(fā)

2021-04-06 08:20:24

二叉搜索樹數(shù)據(jù)結(jié)構(gòu)算法

2023-02-16 17:56:52

2024-05-28 12:25:33

Pythonglobals?函數(shù)

2017-12-28 11:25:51

點贊
收藏

51CTO技術(shù)棧公眾號