csv - 在不创建CSV文件的情况下以字符串形式构造为CSV数据

标签 csv go

我有一个struct,我想将其转换为CSV字符串。我不必编写CSV文件。我只需要创建CSV字符串。

Go CSV软件包(https://golang.org/pkg/encoding/csv/)仅提供书写工具。

这是struct:

type myData struct {
    A string `json:"a"`
    B string `json:"b"`
    C string `json:"c"`
}

CSV:
1,2,3
4, ,6

我想要一个CSV字符串,以便可以通过无服务器环境将字符串作为文件直接上传到云存储中。因此,我想避免在无服务器环境中创建文件。

是否有任何软件包可以帮助您做到这一点?

最佳答案

您可以使用bytes.Buffer写入CSV数据,并获取如下所示的字符串(live):

package main

import (
    "bytes"
    "encoding/csv"
    "fmt"
    "log"
)

func main() {
    pairs := [][]string{
        {"k1", "v1"},
        {"k2", "v2"},
    }

    b := new(bytes.Buffer)
    w := csv.NewWriter(b)

    w.WriteAll(pairs)

    if err := w.Error(); err != nil {
        log.Fatal(err)
    }

    s := b.String()

    fmt.Println(s)
}

关于csv - 在不创建CSV文件的情况下以字符串形式构造为CSV数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61054296/

相关文章:

python - 读取以数字开头的 CSV 列名称(Python)

python - 将 CSV 文件写入 PDF 文档

Golang Gorilla Mux 服务器本地包导入和未使用问题

go - 通过 LDAP 查询来自 Active Directory 的 IP 地址的用户信息?

go - 像使用io/ioutil的“cat” linux命令一样

go - kubectl 如何配置 CRD?

PHP - 分解数组中的值,输出到制表符分隔的文件

c# - 在 C# 中解析用引号引起来的 CSV 文件

go - 需要一些帮助来使用 bazel 构建自定义 Terraform 提供程序

python - DictReader 字段名称位于第三行而不是第一行