Записать данные из Stripe API в CSV-файл в golang - PullRequest
0 голосов
/ 04 февраля 2020

Я пытаюсь получить данные Stripe и проанализировать их в файл CSV. Вот мой код:

package main

import (
    "github.com/stripe/stripe-go"
    "github.com/stripe/stripe-go/invoice"
    "fmt"
    "os"
    "encoding/csv"
)

func main() {
    stripe.Key = "" // I can't share the API key
    params := &stripe.InvoiceListParams{}
    params.Filters.AddFilter("limit", "", "3")
    params.Filters.AddFilter("status", "", "paid")
    i := invoice.List(params)

    // Create a CSV file
    csvdatafile, err := os.Create("./mycsvfile.csv")
    if err != nil {
        fmt.Println(err)
    }
    defer csvdatafile.Close()
    // Write Unmarshaled json data to CSV file
    w := csv.NewWriter(csvdatafile)
    //Column title
    var header []string
    header = append(header, "ID")
    w.Write(header)
    for i.Next() {
        in := i.Invoice()
        fmt.Printf(in.ID) // It is working
        w.Write(in) // It is not working
    }
    w.Flush()
    fmt.Println("Appending succed")
}

Когда я запускаю свою программу с go run *.go, я получаю следующую ошибку:

./main.go:35:10: cannot use in (type *stripe.Invoice) as type []string in argument to w.Write

Я думаю, что я недалеко от решения. Мне просто нужно понять, как правильно писать в файл CSV благодаря команде w.Write().

1 Ответ

0 голосов
/ 04 февраля 2020

В соответствии с do c, функция записи:

func (w *Writer) Write(record []string) error

То есть он ожидает, что вы передадите фрагмент строк, представляющих строку данных CSV, причем каждая строка является фрагментом , Итак, если у вас есть только одно поле, вы должны передать строковый фрагмент 1:

 w.Write([]string{in.ID})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...