ホームページ > バックエンド開発 > Golang > CSV データを Go 構造体に効率的にアンマーシャルするにはどうすればよいですか?

CSV データを Go 構造体に効率的にアンマーシャルするにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-11 15:32:17
オリジナル
182 人が閲覧しました

How Can I Efficiently Unmarshal CSV Data into Go Structs?

CSV レコードを Go 構造体にアンマーシャルする

Go では、CSV レコードをカスタム構造体に逆シリアル化する必要がよくあります。 「encoding/csv」パッケージは基本的な CSV 読み取りを提供しますが、手動で解析して構造体に変換する必要があります。幸いなことに、このプロセスを簡素化する代替ソリューションがあります。

そのようなソリューションの 1 つは gocarina/gocsv です。これは、カスタム構造体を処理するための「encoding/json」パッケージと同じアプローチに従います。また、特定の型のカスタム マーシャリングとアンマーシャリングも可能です。

次の例を考えてみましょう。

type Client struct {
    Id      string `csv:"client_id"`
    Name    string `csv:"client_name"`
    Age     string `csv:"client_age"`
}

func main() {
    in, err := os.Open("clients.csv")
    if err != nil {
        panic(err)
    }
    defer in.Close()

    clients := []*Client{}

    if err := gocsv.UnmarshalFile(in, &clients); err != nil {
        panic(err)
    }
    for _, client := range clients {
        fmt.Println("Hello, ", client.Name)
    }
}
ログイン後にコピー

ここでは、gocsv.UnmarshalFile は、逆シリアル化されたクライアント構造体をクライアント スライスに直接設定します。これにより、アンマーシャリング プロセスが簡素化され、標準の「エンコーディング/CSV」メソッドを使用するよりも直感的で便利になります。

以上がCSV データを Go 構造体に効率的にアンマーシャルするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート