一根不起眼的短横线,在 Golang 和 Python 中,都能够让你不输出某些不想要的字符。
不输出日期时间前面的0
我们在使用 Python 输出时间日期的时候,一般格式是这样的:YYYY-mm-dd HH:MM:SS,例如:2021-03-22 09:10:12。可以看到03和09前面都有一个0。这样做的好处,是可以让日期时间保持相同的长度,于是就可以通过字符串的方式比较大小。
但有时候,因为某些原因,你可能确实不想补0,你就想输出2021-3-22 9:10:12这种格式的时间。
但我们知道,在 Python 里面把日期时间格式化输出,代码如下:
- import datetime
- now = datetime.datetime.now()
- dt_str = now.strftime('%Y-%m-%d %H:%M:%S')
在这个格式化符号里面,可以看到我们本身就使用的是一个字符,月份就是%m,难道还有另外一个符号用来表示不补0的日期?
实际上,不补0并不需要另外一个符号来表示,我们只需要在%和m之间加上一根短横线就可以了:
- import datetime
- now = datetime.datetime.now()
- dt_str = now.strftime('%Y-%-m-%-d %-H:%-M:%-S')
- print(dt_str)
运行效果如下图所示:
Golang 结构体与 JSON 的互相转换
在使用 Golang 的时候,我们有时候需要在结构体和 JSON 字符串之间互相转换。在转换的工程中,可能会发现有些字段是多余的。我们不想让 JSON中的某些字段转到结构体里面,或者不想让结构体里面的某些字段转到 JSON 中去。
对于从 JSON 转到结构体,要忽略字段非常简单,例如有如下一个 JSON 字符串:
- {"name": "kingname", "salary": 999999999, "address": "上海", "handsome": true}
在转成结构体的时候,我不想要handsome这个字段,于是可以这样写代码:
- 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)
- }
运行效果如下图所示:
但问题是,如果现在给你一个结构体,但是转成 JSON 的时候不想要其中一个字段,应该怎么操作?可能有人会以为,在定义结果体的时候,不要加上json:"xxx"就可以了。但实际执行的效果如下图所示:
Golang 会直接使用这个字段在结构体中的名字来转成 JSON。
如果不想要这个字段,实际上有一个非常简单的办法,就是在定义结构体的时候,加上json:"-",例如:
- type Info struct {
- Name string `json:"name"`
- Salary int64 `json:"salary"`
- Address string `json:"address"`
- Handsome bool `json:"-"`
- }
运行效果如下图所示:
通过指定这个横线,就能忽略这个字段了。
本文转载自微信公众号「未闻Code」,可以通过以下二维码关注。转载本文请联系未闻Code公众号。
个人中心 修改社区昵称和头像、简介等个人信息 注册/登录为腾讯云用户 登录后在...
00、BEGIN 提及 体系 二字,我的脑海里浮现出老板说的 对于工作的规划要从全局出...
1.冬天最流氓了,总是喜欢对我冻手冻脚。 2.我们都是这样,上课的时候不省人事...
最近几周,陆续收到几位读者关于装饰器使用的提问,今天统一回复。 1. 问题 大概...
从 C++ 转 Python 的时候,我已经是一个有四年全职工作经验的软件开发者了。我的...
1.一旦我发现数学有题目不会做了我就跳过,这一跳我发现根本停不下来。 2.慢点...
【51CTO.com原创稿件】刚刚结束的两会极为重要,因为2021年是中国共产党建党100...
一、前言 二、什么是脚手架呢? 三、谁提供了脚手架? 1、Spring 官网脚手架 2、...
1.将属性设置为 undefined 将属性设置为 undefined 不是最好的方法,因为属性本...
前言 大家好,我是bigsai!最近,大数加减频频登上笔试的舞台,小伙伴们在群里也...