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"
  }
]
相关推荐
沸腾_罗强3 分钟前
Bugs
后端
一条GO5 分钟前
ORM中实现SaaS的数据与库的隔离
后端
京茶吉鹿7 分钟前
"if else" 堆成山?这招让你的代码优雅起飞!
java·后端
长安不见7 分钟前
从 NPE 到高内聚:Spring 构造器注入的真正价值
后端
你我约定有三11 分钟前
RabbitMQ--消息丢失问题及解决
java·开发语言·分布式·后端·rabbitmq·ruby
张北北.32 分钟前
【深入底层】C++开发简历4+4技能描述6
java·开发语言·c++
程序视点43 分钟前
望言OCR 2025终极评测:免费版VS专业版全方位对比(含免费下载)
前端·后端·github
李永奉1 小时前
STM32-定时器的基本定时/计数功能实现配置教程(寄存器版)
c语言·开发语言·stm32·单片机·嵌入式硬件
rannn_1111 小时前
Java学习|黑马笔记|Day23】网络编程、反射、动态代理
java·笔记·后端·学习
go54631584651 小时前
中文语音识别与偏误检测系统开发
开发语言·人工智能·学习·生成对抗网络·数学建模·语音识别