Golang:使用jszwec/csvutil读取csv文件

jszwec/csvutil 高性能、惯用的CSV记录编码和解码到本机Go结构

文档

安装

bash 复制代码
go get github.com/jszwec/csvutil

要读取的文件 user.csv

复制代码
name,age,CreatedAt
jacek,26,2012-04-01T15:00:00Z
john,,2001-01-01T00:00:00Z

读取示例

go 复制代码
package main

import (
    "encoding/json"
    "fmt"
    "os"
    "time"

    "github.com/jszwec/csvutil"
)

type User struct {
    Name      string `csv:"name"`
    Age       int    `csv:"age,omitempty"`
    CreatedAt time.Time
}

func main() {
    body, _ := os.ReadFile("./user.csv")

    var users []User

    // read csv
    csvutil.Unmarshal(body, &users)

    // out
    data, _ := json.MarshalIndent(users, "", "  ")
    fmt.Println(string(data))
}

转为json输出

json 复制代码
[
  {
    "Name": "jacek",
    "Age": 26,
    "CreatedAt": "2012-04-01T15:00:00Z"
  },
  {
    "Name": "john",
    "Age": 0,
    "CreatedAt": "2001-01-01T00:00:00Z"
  }
]
相关推荐
考虑考虑5 小时前
JDK26中的Map.ofLazy
java·后端·java ee
云浪6 小时前
Go 并发实战:从零实现一个高并发安全的任务调度器
javascript·后端·go
苏三的开发日记6 小时前
Docker 启动顺序优化(CentOS / Ubuntu)
后端
高频因子挖掘机8 小时前
同一交易日出现重复 K 线:去重前先确认时间、来源和粒度
后端·github·api
feely02089 小时前
《我写了 31 个静态扫描插件,踩了 7 个「假绿」》
后端
橙子家10 小时前
参数校验类异常(Argument Exception)【C# Exception 详解系列一】
后端
掘金挖土10 小时前
前端手摸手跑路之 AI 应用开发(九)
前端·后端
全栈弄潮儿11 小时前
Python实战第8期:函数
后端·python·编程语言
码事漫谈11 小时前
你让 AI “尽力做”,它反而可能做不好
后端