Convertir la requête Select obtenue de Postgre avec Go en JSON

Chose que tu veux faire

--Je veux convertir la requête entière obtenue par l'instruction SELECT en JSON --Il semble que l'analyse du package sql est en cours de traitement ligne par ligne, et vous devez créer un tableau dans la boucle (?) --Convertir à partir du tableau avec le package json

code

main.go


package main

import (
    "database/sql"
    "encoding/json"
    "fmt"
    _ "github.com/lib/pq"
)

const (
    // Initialize connection constants.
    HOST     = "127.0.0.1"
    DATABASE = "testdb"
    USER     = "root"
    PASSWORD = "password"
)

func checkError(err error) {
    if err != nil {
        panic(err)
    }
}

func main() {

    // Initialize connection string.
    var connectionString string = fmt.Sprintf("host=%s user=%s password=%s dbname=%s sslmode=disable", HOST, USER, PASSWORD, DATABASE)

    // Initialize connection object.
    db, err := sql.Open("postgres", connectionString)
    checkError(err)

    err = db.Ping()
    checkError(err)
    fmt.Println("Successfully created connection to database")

    // Read rows from table.
    var id int
    var name string
    var quantity int

    sql_statement := "SELECT * from inventory;"
    rows, err := db.Query(sql_statement)
    checkError(err)
    defer rows.Close()

    //Définir la structure
    type data struct {
        ID int
        Name string
        Quantity int
    }

    //Déclarez le type de tableau
    var fruit []data

    for rows.Next() {
        switch err := rows.Scan(&id, &name, &quantity); err {
        case sql.ErrNoRows:
            fmt.Println("No rows were returned")
        case nil:
            fmt.Printf("Data row = (%d, %s, %d)\n", id, name, quantity)

            //Ajouter un tableau ligne par ligne
            fruit = append(fruit,data{
                ID: id,
                Name: name,
                Quantity: quantity,
            })
        default:
            checkError(err)
        }
    }

    fruitjson, _ := json.Marshal(fruit)
    fmt.Println(string(fruitjson))

}

résultat

yuta:~/postgre $ go run main.go 
Successfully created connection to database
Data row = (1, banana, 150)
Data row = (2, orange, 154)
Data row = (3, apple, 100)
Data row = (4, test, 100)
[{"ID":1,"Name":"banana","Quantity":150},{"ID":2,"Name":"orange","Quantity":154},{"ID":3,"Name":"apple","Quantity":100},{"ID":4,"Name":"test","Quantity":100}]

référence

https://docs.microsoft.com/ja-jp/azure/postgresql/connect-go

Recommended Posts

Convertir la requête Select obtenue de Postgre avec Go en JSON
Convertir de PDF en CSV avec pdfplumber
Convertir des données Excel en JSON avec python
Convertir un tableau (struct) en json avec golang
Convertir 202003 en 2020-03 avec les pandas
Convertir json en Excel
Comment convertir un fichier JSON en fichier CSV avec Python Pandas
Connectez-vous à Postgresql avec GO
Générer une requête URL à partir de JSON
Convertir l'espace colorimétrique RVB en CIELAB avec PIL (Pillow)
Convertir une image au format PIL lue depuis un formulaire avec Django au format base64
Convertir l'objet Statut Tweepy en JSON
Convertir la liste en DataFrame avec python
Convertir des phrases en vecteurs avec gensim
Conversion de pdf en txt 2 [pyocr]
Comment convertir .mgz en .nii.gz
Convertir un PDF en image avec ImageMagick
Convertir un mémo à la fois avec Python 2to3
Comment convertir facilement le format de Markdown
Script pour générer un répertoire à partir d'un fichier json
Convertir (compresser) une chaîne de caractères JSON formatée en JSON 1 ligne
Convertir des chaînes de caractères en quantités de caractéristiques avec RoBERTa
Convertir Hiragana en Romaji avec Python (bêta)
Conversion de katakana en voyelle kana [python]
Convertissez des données FX 1 minute en données 5 minutes avec Python
Convertir des fichiers PDF en fichiers PNG avec GIMP
Convertir des nombres chinois en nombres arabes avec Python
Convertir de Markdown en HTML en Python
Exemple de conversion en ondelettes d'images en Python