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"
  }
]
相关推荐
艾莉丝努力练剑9 分钟前
【洛谷刷题】用C语言和C++做一些入门题,练习洛谷IDE模式:分支机构(一)
c语言·开发语言·数据结构·c++·学习·算法
CHEN5_0224 分钟前
【Java基础面试题】Java基础概念
java·开发语言
bobz96530 分钟前
pip install 已经不再安全
后端
寻月隐君40 分钟前
硬核实战:从零到一,用 Rust 和 Axum 构建高性能聊天服务后端
后端·rust·github
杜子不疼.2 小时前
《Python学习之字典(一):基础操作与核心用法》
开发语言·python·学习
落霞的思绪2 小时前
Java设计模式详细解读
java·开发语言·设计模式
阿巴~阿巴~2 小时前
深入解析C++ STL链表(List)模拟实现
开发语言·c++·链表·stl·list
Pitayafruit2 小时前
Spring AI 进阶之路03:集成RAG构建高效知识库
spring boot·后端·llm
我叫黑大帅3 小时前
【CustomTkinter】 python可以写前端?😆
后端·python
java1234_小锋3 小时前
一周学会Matplotlib3 Python 数据可视化-绘制自相关图
开发语言·python·信息可视化·matplotlib·matplotlib3