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"
  }
]
相关推荐
应用市场几秒前
Qt插件机制实现动态组件加载详解
开发语言·qt
小秋学嵌入式-不读研版2 分钟前
C65-枚举类型
c语言·开发语言·笔记
间彧7 分钟前
在DDD架构中,如何设计Domain层与Entity层的关系?
后端
间彧7 分钟前
DTO和VO在实际项目中如何避免重复定义?有哪些自动化转换工具推荐?
后端
间彧8 分钟前
SpringBoot项目各层级的详细作用与区分
后端
00后程序员12 分钟前
Swoole HTTPS 实战,在生产环境部署、性能权衡与排查流程
后端
程序员爱钓鱼24 分钟前
Python编程实战 · 基础入门篇 | 什么是Python
后端·python
Mintopia28 分钟前
⚡当 Next.js 遇上实时通信:Socket.io 与 Pusher 双雄传
前端·后端·全栈
ZhengEnCi28 分钟前
ObjectUtils.isEmpty 完全指南-从入门到精通的 Java 空值判断利器
java·后端
凯哥197028 分钟前
Supabase Edge Functions 开发指南
后端