溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

一根短橫線在Golang和Python中有什么作用

發(fā)布時(shí)間:2021-10-15 13:49:56 來源:億速云 閱讀:193 作者:iii 欄目:編程語言

這篇文章主要講解了“一根短橫線在Golang和Python中有什么作用”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“一根短橫線在Golang和Python中有什么作用”吧!

不輸出日期時(shí)間前面的0

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

但有時(shí)候,因?yàn)槟承┰?,你可能確實(shí)不想補(bǔ)0,你就想輸出2021-3-22 9:10:12這種格式的時(shí)間。

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

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

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

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

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

運(yùn)行效果如下圖所示:

一根短橫線在Golang和Python中有什么作用

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

在使用 Golang 的時(shí)候,我們有時(shí)候需要在結(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)體,要忽略字段非常簡單,例如有如下一個(gè) JSON 字符串:

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

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

package main  import (  "encoding/json"  "fmt" )  type Info struct {  Name    string `json:"name"`  Salary  int64  `json:"salary"`  Address string `json:"address"` }  func main() {  jsonstr := `{"name": "kingname", "salary": 999999999, "address": "上海", "handsome": true}`  var info Info  err := json.Unmarshal([]byte(jsonstr), &info)     if err != nil {         panic(err)     }  fmt.Println(info) }

運(yùn)行效果如下圖所示:

一根短橫線在Golang和Python中有什么作用

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

一根短橫線在Golang和Python中有什么作用

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

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

type Info struct {  Name     string `json:"name"`  Salary   int64  `json:"salary"`  Address  string `json:"address"`  Handsome bool   `json:"-"` }

運(yùn)行效果如下圖所示:

一根短橫線在Golang和Python中有什么作用

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

感謝各位的閱讀,以上就是“一根短橫線在Golang和Python中有什么作用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對一根短橫線在Golang和Python中有什么作用這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI